d3-元素筛选

元素筛选

基础筛选

formatdescription
foofoo标签
#fooidfoo
.fooclass包含foo
[foo=goo]存在属性foo=goo
foo goofoo下的goo标签
foo#goofoo下的idgoo
foo.goofoo下的class包含goo
foo:first-childfoo标签的第一个子元素
foo:nth-child(n)foo标签下的第n个元素

单元素选择

<p id="target"></p>
<script type="text/javascript">
	d3.select("p#target").text("hello world !");
</script>
  • attr
// 设置属性
d3.select("p").attr("foo", "goo");
// 获取属性
d3.select("p").attr("foo");
  • classed
// 检测class是否有foo
d3.select("p").classed("foo");
// class添加属性
d3.select("p").classed("foo", true);
// class撤销 属性
d3.select("p").classed("foo", false);
// 支持方法入参
d3.select("p").classed("foo", function(){return false;});
  • style
// 获取指定样式
d3.select("p").style("font-size");
// 设置属性
d3.select("p").style("font-size", "10px");
// 支持方法入参
d3.select("p").style("font-size", function(){return 1+2;});
  • text
// 获取文本内容
d3.select("p").text();
// 设置文本内容
d3.select("p").text("hello world!"):
// 支持方法入参
d3.select("p").text(function (){return "hello world!";});
  • html
// 获取文本内容
d3.select("p").html();
// 设置文本内容
d3.select("p").html("<b>inner html</b>");
// 支持方法入参
d3.select("p").html(function(){
    return "<b>inner html</b>"
});

多元素选择

d3.selectAll("p").attr("class", "red box");

子选择器

// 可以层级进行选择
d3.select("#sectionA").select("p").text("sectionA");
// 单行 > 拼接,简化层级选择
d3.select("#sectionB > p").text("sectionB");

元素操作

元素迭代

d3.selectAll("div.godme").each(function(d, i){
   d3.select(this).append("h1").text("godme"+i); 
});
operationdescription
select(this)拿到当前元素
append添加元素
d绑定数据
i迭代顺序

级联调用

d3.select("body")
	.append("section")
		.attr("id", "section1")
	.append("div")
		.attr("class", "blue box")
	.append("p")
		.text("hello world!");
// 每次的选择或者添加,返回新一轮的元素,可以不停的递进深入进行设置
// 不可回溯,应该将节点的值单独保存,或者利用递归回溯

选集筛选

// 选集元素都在[0]
var ps = d3.selectAll("p");
var firstp = ps[0][0];
d3.select(firstp).text("firstp");
d3.select(ps[0][1]).text("01");
d3.select(ps[0][2]).text("02");
d3.select(ps[0][3]).text("03");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值