d3.按属性值选择

我是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.... 

有人知道我怎么做吗?

你的问题是idname 必须以字母开头 。 因此,修改代码以在每个id一个字符串,例如

 .attr('id', function(d){ return 'name' + d.id; }) 

然后,您可以使用d3.select( '#name' + i )选择给定节点。 从D3选择的文档 :

…您可以通过标签(“div”),类(“.awesome”),唯一标识符(“#foo”),属性(“[color = red]”)或包含(“父子”)进行选择。