这让我发疯了。这是我想为每个节点输入特定类的代码。所以这里它为所有节点分配"节点"但是我想以某种方式强制第一个节点被分配" node1"或者其他的东西。我一直在玩(d,i),但它不起作用。
以下是JSFiddle我一直在使用
//add nodes and effects
var node = svg.selectAll("g.node")
.data(json.nodes)
.enter().append("g")
.attr("class", "node")
.attr("class", "node")
答案 0 :(得分:0)
您可以将节点类或ID应用为数据的函数:
而不是:
var node = svg.selectAll("g.node")
.data(json.nodes)
.enter().append("g")
.attr("class", "node")
将相同的类应用于所有节点,如上所述,您可以使用类似:
var node = svg.selectAll("g.node")
.data(json.nodes)
.enter().append("g")
.attr("class", function(d,i) {return "node-" + i; })
这里我等于当前节点在数据数组中的位置。因此,您将拥有以下类:node-0
,node-1
,node-2
... d指的是绑定到节点的数据,您可以使用d.property访问其属性
因此,您可以使用数据的属性来定义类或ID:
var node = svg.selectAll("g.node")
.data(json.nodes)
.enter().append("g")
.attr("class", function(d) { return "node-" + d["property"]; })
或
var node = svg.selectAll("g.node")
.data(json.nodes)
.enter().append("g")
.attr("class", function(d) { return "node-" + d.property; })