d3.select(this).selectAll("li")
.data(function(d) {
return [{"name": "tab1"},{"name": "tab2"}]
})
.enter()
.append(function(d, i) {
return document.createElement("li");
})
.html(function(d,i) {
return "Test1";
});
如果“this”中已经有“li”,则只会添加一个......如何使用.data()添加2“li”并保留已存在的那个? / p>
答案 0 :(得分:2)
问题在于,当您编写selectAll("li")
时,您正在选择现有的li
并将数据加入其中。您必须使用其他选择,例如selectAll(".newLi")
。
d3.select(this).selectAll(".newList")
.data(function(d) {
return [{"name": "tab1"},{"name": "tab2"}]
})
.enter()
.append(function(d, i) {
return document.createElement("li");
})
.html(function(d,i) {
return "Test1";
});
在这个小提琴中,点击现有的li
(“this”和“that”)以附加新元素:http://book.cakephp.org/3.0/en/orm/query-builder.html
要完成,使用纯JS没有任何问题,但D3让你的生活更轻松......你可以简单地使用:
.append("li")
PS:这已被问了很多次......甚至不是“重复”,也许是“多重”。