d3.按属性值选择

时间:2013-12-06 02:45:27

标签: javascript jquery d3.js

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

有人知道我怎么做吗?

1 个答案:

答案 0 :(得分:43)

你的问题是ids and names 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]”)或包含   (“父母子女”)。