来自文档:
d3.selectAll(选择器)
选择与指定选择器匹配的所有元素。要素 将在文档遍历顺序(从上到下)中选择。如果不 当前文档中的元素与指定的选择器匹配,返回 空的选择。
现在实践中:
<div class="nv-series"></div>
<div class="nv-series"></div>
<div class="nv-series"></div>
脚本:
console.log(d3.selectAll(".nv-series").length);
console.log($(".nv-series").length);
d3记录1!和jquery 3!
这可能是正常的,但我不明白。有人能解释为什么d3会记录1吗?
答案 0 :(得分:4)
请勿使用.length
- 使用.size()
,如下所示:
console.log(d3.selectAll(".nv-series").size());
d3选择(d3.selectAll
的结果)是一个数组数组。碰巧(在您的情况下),您期望的长度3可以通过d3.selectAll(".nv-series")[0].length
得到。但要避免这样做。这种表示的原因超出了本讨论的范围。但要带走的是,或许与jQuery不同,d3选择的数组表示被认为是内部的,因此避免对其执行任何数组操作(例如检查.length
)。相反,请使用api方法,例如.size()
,.node()
,.empty()
等。