我已经看到一些带有这样的模式的D3代码用于追加元素:
var circles = svg.selectAll(null)
.data(data)
.enter()
.append("circle");
Run Code Online (Sandbox Code Playgroud)
我真的没有得到这个片段.为何选择null?
我理解D3的方式,如果有人附加圈子,它应该是:
var circles = svg.selectAll("circle")
.data(data)
.enter()
.append("circle");
Run Code Online (Sandbox Code Playgroud)
同样,如果要添加HTML段落,它应该是:
var circles = svg.selectAll("p")
.data(data)
.enter()
.append("p");
Run Code Online (Sandbox Code Playgroud)
对于类来说也是如此:如果一个是用类附加元素foo,那么它应该是selectAll(".foo").
但是,selectAll(null) 确实有效!元素得到追加.
那么,那是什么意思null呢?我在这里错过了什么?
注意:这是一个自我回答的问题,试图提供一个主题的"规范"问答,这个问题已被许多先前的问题所触及,而不是由API解释.以下大部分答案来自我在已灭绝的StackOverflow文档中编写的示例.