我是d3的新手。我有这样的定义:
node = node.enter().append("circle")
.attr('id', function(d){ return d.id; })
.attr("class", "node")
.on('mouseover', mouseover_node)
.on("click", nodeClick);
现在在函数nodeClick中我想访问具有特殊id的节点(或循环)。我正在寻找一些我可以这样使用的东西:
for(var i=0;i<maxId;i++) {
d3.select(the node with id = i).do....
有人知道我怎么做吗?
答案 0 :(得分:43)
你的问题是id
s and name
s must begin with a letter。因此,修改代码以在每个id
前添加一个字符串,例如
.attr('id', function(d){ return 'name' + d.id; })
然后,您可以使用d3.select( '#name' + i )
选择给定节点。来自the docs的D3选择:
...您可以通过标签(“div”),类(“.awesome”)选择,唯一 标识符(“#foo”),属性(“[color = red]”)或包含 (“父母子女”)。