D3.js:追加后获取parentNode

Bob*_*ker 3 dom structure append d3.js

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

所需的结构:

root > div > div 
           > text
     > div > div
           > text
     > ... 
Run Code Online (Sandbox Code Playgroud)

代码:

root > div > div 
           > text
     > div > div
           > text
     > ... 
Run Code Online (Sandbox Code Playgroud)

错误消息:

[...].parentNode is undefined
Run Code Online (Sandbox Code Playgroud)

D3 有没有办法在追加元素后沿着树向上移动?

Mar*_*ark 5

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

d3.select("#root")
    .append("div")
    .text("text")
    .append("div");
Run Code Online (Sandbox Code Playgroud)

也就是说,您可以使用:

var div = d3.select("#root")
    .append("div")
    .append("div")
    .select(function(){
      return this.parentNode;
    })
   .text("text");
Run Code Online (Sandbox Code Playgroud)

问题是它将.text覆盖子 div。

因此,为了避免这种情况,如何:

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

例子在这里