D3js中的選擇器有另種:
1、d3.select();
2、d3.selectAll();
雖然從字面上理解第一種返回的是一個對象;第二種返回的是一個數組。但是實際上都返回的是個二維數組,測試代碼如下:
<script type="text/javascript">
let selectTr = d3.select("tr");
let selectAllTr = d3.selectAll("tr");
console.log("select->[0]:" + selectTr.length + "," + selectTr[0].length);
console.log("select->[0]:" + selectAllTr.length + "," + selectAllTr[0].length);
</script>
運行結果如下:
由於這些隱含的操作導致在後續其他操作中需要格外的注意,比如我需要獲取某個dom元素上綁定的數據,就需要如下的寫法來獲取:
var data = d3.selectAll(this)[0].__data__;
獲取到的data就是綁定到當前dom對象上的數據。