2014-10-09 68 views
0

从文档:D3全选VS jQuery选择

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

他们应该是相同的,尝试使用'div'而不是 – agconti 2014-10-09 22:26:49

回答

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()

+0

谢谢。似乎你知道很多关于D3的:) – clankill3r 2014-10-09 22:53:13