当我在D3中拥有Data对象时,如何找到关联的DOM元素?

时间:2015-06-27 02:05:33

标签: javascript jquery d3.js

我有大约20-30个“rect”对象,它们包含在类“barsGroup”的组中,在我的D3中,每个对象都绑定了对象。绑定对象具有一个UUID的id字段。

当我只有Object时,任何人都可以帮我使用select语句来查找关联的“rect”DOM元素。我的所有绑定对象都在“data”数组中;

我试过了

d3.select("#barsGroup").selectAll("rect").data(data).filter(function(d){return task.id === d.id})[0][0];

虽然这似乎适用于大多数元素,但它会使其他元素混乱。有人能否解释我做错了什么?

我的做法可能是错误的。

基本上我有一个看起来像这样的对象:

{"id":"c",
 "parents":["a","b"]
}

每个a,b和c数据对象都已绑定到矩形。

我现在正试图从绑定到“c”的矩形的边界框中绘制箭头,以及绑定到父母“a”和“b”的矩形。

我正在寻找如何使用对象“a”中的id来获取由对象“a”绑定的DOM矩形。

2 个答案:

答案 0 :(得分:1)

如果您需要该节点,无需破解API,请使用node方法......

var myRect = d3.select("#barsGroup").selectAll("rect").filter(function(d){return task.id === d.id}).node();

答案 1 :(得分:0)

我删除了数据绑定。它就像一个魅力。 "任务"是对象。

d3.select("#barsGroup").selectAll("rect").filter(function(d){return task.id === d.id})[0][0];