【发布时间】:2013-06-19 14:13:45
【问题描述】:
我对以下 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");
问题:
当我们的 HTML 中没有 tr 时,为什么我们要使用
selectall("tr")?选择甚至不存在的“tr”有什么意义。data(dataset)为 tr 做什么?什么是 td 的
data(function(d){return d;})? 2和3有什么区别?
【问题讨论】:
-
前 3 个问题的答案例如在 this tutorial 中。对于问题 4,我建议查看 this tutorial。第一个教程也回答了您的最后一个问题。
-
yaa,我之前看到了那个东西,但是请我以更实际的方式理解事物,我经历了与链接相同的例子,但我无法完全理解它。我会很棒如果你能用简单的语言解释一下。只是基本机制,请不要再链接了。
-
@jayeshjain 只需调整代码,看看如果你删除一行或更改一些参数会发生什么,你就会明白。顺便说一句,大部分语法都接近于最流行的 DOM 库,而不是任何火箭科学。
-
@jayeshjain:抱歉,我们不是来将英语翻译成更简单的英语。我们在这里回答编程问题。 Stack Overflow 是一个英文网站。如果我们也能获得更多不同语言的使用者,那就太好了,但我们不是翻译服务。
-
这就是教程中的内容。我真的不能让它比这更简单。有些概念需要解释,省略它们不会帮助您理解。
标签: javascript jquery multidimensional-array d3.js