2012-07-05 26 views
5

簡單的HTML:d3js selection.each()回調組參數

<div class="div1"> 
     <div class="test"><span>1</span></div> 
     <div class="test"><span>2</span></div> 
</div> 

和JS:

var el = d3.select(".div1").selectAll(".test"); 
el.each(function() { 
     console.log(arguments); 
}); 

輸出:

[undefined, 0, 0] 
[undefined, 1, 0] 

什麼是最新的參數(0)?根據源代碼,這是組,但是在d3文檔中找不到有關選擇器組的任何內容。

謝謝。

回答

6

這對嵌套選擇器: http://bost.ocks.org/mike/nest/

例如這個HTML:

<table> 
    <tr> 
     <td></td> 
     <td></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
    </tr> 
</table> 

我們選擇TD:

var el = d3.selectAll("tr").selectAll("td"); 

EL是[ Array[2] , Array[2] ]

el.each

el.each(function() { 
    console.log('args',arguments); 
}); 

輸出:

args [undefined, 0, 0] 
args [undefined, 1, 0] 
args [undefined, 0, 1] 
args [undefined, 1, 1] 
+0

+1好答案。要擴大一點,可以把它看作:'datum,i,j',其中'j'是分組。如果只有一個組,分組將會爲0。 – Wex