2012-07-05 2 views
5

Простой HTML:d3js selection.each() обратного вызова группы аргументов

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

И ЯШ:

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> 

выберите тд Давайте:

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

эль является [ 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

Смежные вопросы