【发布时间】:2016-01-30 11:34:21
【问题描述】:
我怀疑答案介于我对自己实际工作的对象类型的无知与 D3 和/或 SVG 的内在黑暗之间。
我可以在屏幕上看到 30 个圆圈。所以我像这样进入控制台。
var circles = d3.select("#svg1").selectAll("circle");
>undefined
circles;
>[Array[30]]...
circles.length;
>1
我知道我的目标是正确的元素,因为在集合上执行 .remove() 会将它们从屏幕上清除。但是计数是怎么回事?
【问题讨论】:
-
因为,
circles是一个包含单个元素的数组,它本身就是一个包含 30 个元素的数组。使用circles[0].length -
@Tushar 对。知道了。正如我问 Fawzan - 在 D3 环境中总是这样吗?或者我们曾经有一个包含多个数组的数组?
-
您会获得多个顶级元素,例如用于嵌套选择。这是有据可查的——参见github.com/mbostock/d3/wiki/Selections“操作选择”部分。
标签: javascript d3.js svg