获取多个元素的属性值

时间:2014-03-01 16:12:22

标签: javascript d3.js

我想将选择中的多个元素的属性值作为数组获取,但我找不到简洁的方法。

例如,在svg元素中,有一些circle,您需要获得所有这些属性的cx属性。

我试过了:

var cxs = d3.select("svg")
    .selectAll("circle")
    .attr("cx");

但结果只是一个圆圈的值(比如“523.4777243042896”),我需要所有cx个。 圆的坐标是用复杂的模拟算法计算的,因此不可能使用原始数据得到它们。 有没有什么好方法可以获得所有价值?

感谢。

1 个答案:

答案 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');
});