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 有没有办法在追加元素后沿着树向上移动?
我假设你上面的代码只是为了说明,因为它可以写成:
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)
例子在这里。