如何在d3中通过变量id选择元素?

时间:2014-02-05 20:14:39

标签: javascript d3.js

假设我想通过变量id ='myID'选择id为'myID'的元素。 通常我会直接选择元素:

d3.select("[id=myID]").attr("fill", "#ccc");

但是如何通过变量做到这一点? 我试过像:

d3.select("[id=" + id + "]").attr("fill", "#ccc");

但那当然会返回错误。 有人知道怎么做吗?

先谢谢,monkian

2 个答案:

答案 0 :(得分:3)

要按ID选择元素,您可以使用#表示法:

d3.select("#myID").attr("fill", "#ccc");

var x = "myID";
d3.select("#" + x).attr("fill", "#ccc");

演示here

答案 1 :(得分:0)

这对我有用: 要将变量id分配给d3.selectAll,我所做的是 - >

            var a=d.data.id;
            var b="\"";
            var position = 0;
            var output = [a.slice(0, position), b, 
            a.slice(position)].join('');
            output += "\"";
            d3.selectAll("[id=" + output + "]")

简而言之,我正在选择一个具有某个id的元素(每个元素都是可变的),然后在变量的开头和结尾附加",然后将其传递给d3的selectAll menthod。