var matrix = [
[11975, 5871, 8916, 2868],
[ 1951, 10048, 2060, 6171],
[ 8010, 16145, 8090, 8045],
[ 1013, 990, 940, 6907]
];
var tr = d3.select("body").append("table").selectAll("tr")
.data(matrix)
.enter().append("tr");
var td = tr.selectAll("td")
.data(function(d) { return d; })
.enter().append("td")
.text(function(d) { return d; });
我不明白d代表什么。有人可以如此友好地引导我完成代码吗?
参考:https://github.com/mbostock/d3/wiki/Selections#wiki-remove
答案 0 :(得分:3)
你在这里有一个nested selection,即你正在做出选择,然后根据它进行选择。这也是.data()
参数中函数的解释 - 它嵌套在第一个函数之下,因此它可以引用它。
特别是,您在.data(matrix)
中传入了一个数组数组。 D3将为该矩阵的每个元素(即每个数组)执行某些操作。在这里,它绑定到附加的tr
元素。那么当你再次调用.data()
时,你可以引用绑定到这些元素的数据(tr
s)。 function(d) { return d; }
只是说D3应该使用已绑定到它的数据。由于这是一个数组,D3将为它的每个元素做一些事情,即附加表格单元格。