我对以下 d3.js 代码有一些疑问。我参考了他们的 Github 和一些教程,但我太笨了,无法理解他们的语言。
请,如果有人了解 d3js 的基础知识,请在下面对我的问题进行简单的阐述。
请不要给我链接!!!
该代码基本上创建了下表:
var dataset = [],
tmpDataset = [],
i, j;
for (i = 0; i < 5; i++) {
for (j = 0, tmpDataset = []; j < 3; j++) {
tmpDataset.push("Row:"+i+",Col:"+j);
}
dataset.push(tmpDataset);
}
d3.select("#viz")
.append("table")
.style("border-collapse", "collapse")
.style("border", "2px black solid")
.selectAll("tr")
.data(dataset)
.enter().append("tr")
.selectAll("td")
.data(function(d){return d;})
.enter().append("td")
.style("border", "1px black solid")
.style("padding", "10px")
.on("mouseover", function(){d3.select(this).style("background-color", "aliceblue")})
.on("mouseout", function(){d3.select(this).style("background-color", "white")})
.text(function(d){return d;})
.style("font-size", "12px");
问题:
selectall("tr")
当我们的 HTML 中没有 tr 时,我们为什么要这样做?选择甚至不存在的“tr”有什么意义。data(dataset)
tr 在做什么?data(function(d){return d;})
td 有什么用?2和3有什么区别?