我想将选择中的多个元素的属性值作为数组获取,但我找不到简洁的方法。
例如,在svg
元素中,有一些circle
,您需要获得所有这些属性的cx
属性。
我试过了:
var cxs = d3.select("svg")
.selectAll("circle")
.attr("cx");
但结果只是一个圆圈的值(比如“523.4777243042896”),我需要所有cx
个。
圆的坐标是用复杂的模拟算法计算的,因此不可能使用原始数据得到它们。
有没有什么好方法可以获得所有价值?
感谢。
答案 0 :(得分:1)
如果我理解正确,您希望获得cx
值的列表。所以,这是你可以做到的一种方式。
var cxs = [];
d3.selectAll("circle")[0].forEach(function(circle) {
cxs.push(circle.getAttribute('cx'));
});
要缩短一点,可以使用map()
var cxs = d3.selectAll("circle")[0].map(function(circle) {
return circle.getAttribute('cx');
});