有谁知道有什么区别?
我的理解是,两者都会返回相同的选择.
但是当我做一个附加的时候,如果我使用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.