我正在尝试使用.enter方法生成html。
我有以下代码:
alert(d3.select(".ul_class").length);
d3.select(".ul_class").data([4, 8, 15]).enter().append("li").text("hello");
第一个警告显示“1”,因此正确选择了de object。第二行不会在我的DOM对象中附加“li”元素。
我做错了什么? 感谢
答案 0 :(得分:8)
您必须首先创建一个(空)li
元素选择:
d3.select(".ul_class")
.selectAll('li') // <--
.data([4, 8, 15]).enter().append("li").text("hello");
然后将数据绑定到该空选择,这将在新数据的选择中生成占位符。
所以你基本上是在说:
“选择所有li
元素并将数据[4, 8, 15]
绑定到它们。对于尚未绑定的所有数据项,请创建一个新的li
元素。”