d3.js入门-03选择

选择是D3.js的核心概念之一.它基于CSS选择器.它允许我们在网页中选择一个或多个元素.此外,它允许我们修改,追加或删除与预定义数据集相关的元素.在本章中,我们将了解如何使用选择来创建数据可视化.

D3.js有助于使用以下两种方法从HTML页面中选择元素 :

  • select() : 通过匹配给定的CSS选择器,仅选择一个DOM元素.如果给定的CSS选择器有多个元素,则只选择第一个元素.

  • selectAll() : 通过匹配给定的CSS选择器来选择所有DOM元素.如果您熟悉使用jQuery选择元素,则D3.js选择器几乎相同.

让我们看看每个方法详细信息.

select()

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
		
	</head>
	<body>
		  <p id="fristP">Hello World</p>
	</body>
	<script>
		var text = d3.select("p").text()
		console.log(text);
	</script>
</html>

控制台输出:hello word

如果有多个元素select() 则会自动选择第一个元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
		
	</head>
	<body>
		  <p>Hello World1</p>
		  <p>Hello World2</p>
	</body>
	<script>
		var text = d3.select("p").text()
		console.log(text);
	</script>
</html>

控制台输出:hello word1

selectAll() 返回一个元素数组

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
		
	</head>
	<body>
		  <p>Hello World1</p>
		  <p>Hello World2</p>
	</body>
	<script>
		var selectPs = d3.selectAll("p")
		console.log(selectPs);
	</script>
</html>

控制台输出:[Array(2)]

至于class,id 只需加上 .,# 即可与jquery是一样的

元素属性、值等数据添加修改方法:

append()方法:

    append()方法将新元素作为当前选择中元素的最后一个子元素追加。

text()方法

    text()方法用于设置所选/附加元素的内容。

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <div class = "myclass">
         Hello World!
      </div>
      
      <script>
         d3.select("div.myclass").append("span").text("from D3.js");
      </script>
   </body>
</html>

D3.js提供了各种方法,html(),attr()和style()来修改所选元素的内容和样式。 让我们看看本章中如何使用修改方法。

html()可以添加html代码

attr()可以设置元素属性

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <div class = "myclass">
         Hello World!
      </div>
      <a href="http://www.baidu.com" title="baidu">百度</a>
      <script>
         d3.select("a").attr("title","百度");
      </script>
   </body>
</html>

style()方法用于设置所选元素的样式属性

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <div class = "myclass">
         Hello World!
      </div>
      <a href="http://www.baidu.com" title="baidu">百度</a>
      <script>
         d3.select("a").attr("title","百度");
		 d3.select("a").style("color","red");
      </script>
   </body>
</html>

classed()方法专门用于设置HTML元素的"class"属性

给某一元素添加class属性

d3.select(".myclass").classed("myanotherclass", true);

去除某一元素的某一属性

d3.select(".myclass").classed("myanotherclass", false);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值