Dom D3.js:在追加后获取parentNode

Dom D3.js:在追加后获取parentNode,dom,d3.js,append,structure,Dom,D3.js,Append,Structure,我希望将循环中的元素附加到“root”div,然后返回DOM树以附加另一个元素/设置文本(在D3.js中) 所需结构: root > div > div > text > div > div > text > ... 守则: 对于(变量i=0;i

我希望将循环中的元素附加到“root”div,然后返回DOM树以附加另一个元素/设置文本(在D3.js中)

所需结构:

root > div > div 
           > text
     > div > div
           > text
     > ... 
守则:

对于(变量i=0;i<10;i++){
d3.选择(“根”)
.附加(“div”)
.附加(“div”)
.parentNode
.文本(“文本”);
}

我假设您上面的代码只是为了说明,因为它可以写成:

d3.select("#root")
    .append("div")
    .text("text")
    .append("div");
也就是说,您可以使用:

var div = d3.select("#root")
    .append("div")
    .append("div")
    .select(function(){
      return this.parentNode;
    })
   .text("text");
问题是
。text
将覆盖子div

那么,为了避免这种情况,我们可以:

var div = d3.select("#root")
    .append("div")
    .append("div")
    .select(function(){
      return this.parentNode;
    })
   .insert("span","div")
   .text("text");

示例。

谢谢,这样做了—只做了一点小修改:我使用append(“span”).text(…)将文本放在div后面。