2014-10-09 95 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