D3.js: 追加后获取parentNode
D3.js: Get parentNode after append
我想将循环中的元素附加到 "root"-div,然后返回 DOM-树以附加另一个元素/设置文本(在D3.js).
所需结构:
root > div > div
> text
> div > div
> text
> ...
代码:
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js">
for (var i = 0; i < 10; i++) {
d3.select("#root")
.append("div")
.append("div")
.parentNode
.text("text");
}
</script>
错误信息:
[...].parentNode is undefined
D3 中有没有办法在追加元素后上树?
我假设你上面的代码只是为了说明,因为它可以写成:
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");
示例 here.
我想将循环中的元素附加到 "root"-div,然后返回 DOM-树以附加另一个元素/设置文本(在D3.js).
所需结构:
root > div > div
> text
> div > div
> text
> ...
代码:
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js">
for (var i = 0; i < 10; i++) {
d3.select("#root")
.append("div")
.append("div")
.parentNode
.text("text");
}
</script>
错误信息:
[...].parentNode is undefined
D3 中有没有办法在追加元素后上树?
我假设你上面的代码只是为了说明,因为它可以写成:
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");
示例 here.