如何使用.data()将2个孩子附加到父母身上,而不计算现有孩子?

时间:2016-06-04 07:16:53

标签: d3.js

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>

1 个答案:

答案 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:这已被问了很多次......甚至不是“重复”,也许是“多重”。