新手试图学习如何使用d3.js.过去几周一直在教自己JS和修补不同的图书馆。
的script.js
var test = d3.select("body").data([1, 2, 3]);
test.enter().append("p").append("test").text(function(d)
{
return "Hey there... #" + d;
});
当我为此运行HTML文件时,我会在正文中找到它:
的index.html:
Hey there... #2
Hey there... #3
我的问题是,为什么数据数组中的第一个元素不能打印?
答案 0 :(得分:2)
您选择了错误的元素。 d3.select("body").data([1, 2, 3]);
将选择标记名为body
的所有元素,并将数据绑定到该元素。文档中已经有一个(且只有一个)body
元素,它与1
相关联(此外,.select
将始终返回一个元素的集合,无论如何该选择器可以匹配许多元素。
然后test.enter().append("p")
基本上说:对于每个未关联的数据点(2
和3
),请创建一个p
元素。
所以你真正想要的是在开头选择p
元素:
var test = d3.selectAll("p").data([1, 2, 3]);