我有以下代码......
nodes = svg.selectAll("node")
.data(graph.nodes)
.enter()
.append("circle")
.attr("r", 10)
.call(force.drag)
.style("fill", "red");
所以我得到.data
绑定数据,.enter
创建一个圆圈,每个节点都有适当的属性。但是第一个selectAll在做什么?我看不到任何节点类或任何地方。
答案 0 :(得分:2)
使用您的代码,它不会做太多,因为它会选择一个不存在的node
元素。这不会影响enter().append
,但会在重新选择更新时中断。
如果我是你,我将其编码为:
var node = svg.selectAll(".node") //<-- notice the class selectory
.data(graph.nodes)
.enter().append("circle")
.attr("class", "node") //<-- and put the class on them, so we can reselect them later
...
这就是在博斯托克的example中完成的。