d3.按属性值选择

Mil*_*lad 25 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);
Run Code Online (Sandbox Code Playgroud)

现在在函数nodeClick中我想访问具有特殊id的节点(或循环).我正在寻找一些我可以使用的东西:

for(var i=0;i<maxId;i++) {
    d3.select(the node with id = i).do....
Run Code Online (Sandbox Code Playgroud)

有人知道我怎么做吗?

mdm*_*dml 45

你的问题是ids和names 必须以字母开头.因此,修改代码以在每个代码前加一个字符串id,例如

.attr('id', function(d){ return 'name' + d.id; })
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢,d3.select("[id ='"+ i +"']")工作 (2认同)