我正在尝试一些基本的d3,我一直试图使用d3获取每个rect
的属性,但我无法得到任何东西。
当我尝试d3.selectAll("rect")
时,我得到了
如何使用类似rect
之类的内容访问d3.selectAll("rect").select("part1").attr(...)
的属性?我想访问所有rect
的不同属性。
答案 0 :(得分:15)
您可以使用 getter :
获取元素的任何属性d3.select(foo).attr("bar")
基本上只有一个参数的attr()
函数。
这是一个演示。有两类矩形,part1
和part2
。我正在选择所有part1
矩形并得到它们的x位置:
var svg = d3.select("svg");
var rects = svg.selectAll("foo")
.data(d3.range(14))
.enter()
.append("rect")
.attr("fill", "teal")
.attr("y", 20)
.attr("x", d => 10 + 12 * d)
.attr("height", 40)
.attr("width", 10)
.attr("class", d => d % 2 === 0 ? "part1" : "part2");
d3.selectAll(".part1").each(function(d,i) {
console.log("The x position of the rect #" + i + " is " + d3.select(this).attr("x"))
})
<script src="https://d3js.org/d3.v4.min.js"></script>
<svg></svg>