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对象上的数据。