无法获得第一个要打印的数组元素

时间:2014-02-04 21:40:10

标签: javascript d3.js

新手试图学习如何使用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

我的问题是,为什么数据数组中的第一个元素不能打印

1 个答案:

答案 0 :(得分:2)

您选择了错误的元素。 d3.select("body").data([1, 2, 3]);将选择标记名为body的所有元素,并将数据绑定到该元素。文档中已经有一个(且只有一个)body元素,它与1相关联(此外,.select将始终返回一个元素的集合,无论如何该选择器可以匹配许多元素。

然后test.enter().append("p")基本上说:对于每个未关联的数据点(23),请创建一个p元素。

所以你真正想要的是在开头选择p元素:

var test = d3.selectAll("p").data([1, 2, 3]);