javascript – D3.js:select(“body”)之间的区别selectAll(“p”)和selectAll(“p”)?

前端之家收集整理的这篇文章主要介绍了javascript – D3.js:select(“body”)之间的区别selectAll(“p”)和selectAll(“p”)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有谁知道有什么区别?

我的理解是,两者都会返回相同的选择.

但是当我做一个附加的时候,如果我使用selectAll(“p”)它不起作用.

例如,这样做:

var foo = d3.select("body").selectAll("p")
    .data([1,2,3,4])

foo.enter.append("p")

虽然这不行:

var foo = d3.selectAll("p")
    .data([1,4])

foo.enter.append("p")

为什么后者不起作用?

解决方法

这里的简短答案是,“因为没有任何附加条件.”当你正确的是d3.selectAll(“p”)和d3.select(“body”)时,selectAll(“p”)将选择相同的现有节点,选择body元素首先设置添加的新节点的上下文.append()方法.

没有选择主体,你没有必要在DOM树中插入你的节点 – 我猜测d3试图将新的节点附加到文档对象,这导致了HIERARCHY_REQUEST_ERROR discussed here.

猜你在找的JavaScript相关文章