如何从d3节点数据中获取dom svg元素?

时间:2014-10-29 08:56:31

标签: javascript dom svg d3.js

我有nodes变量,它是一个包含图中所有节点的数组。每个节点在DOM中都有一个SVG g(组)SVG元素。

要选择具有DOM元素的数据,我会d3.select(myElement).data()[0],但如何获取包含数据的DOM元素?

1 个答案:

答案 0 :(得分:3)

您可以使用D3的数据匹配来完成此操作。我们的想法是让数据和#34;识别"正确的元素。

d3.selectAll("allMyElements").data([datumIwantElementFor], suitableKeyFunction);

完整演示here

要明确,我建议采用这种方法。当您向文档添加更多元素并意外选择其中一些元素,在多个位置使用相同数据或更改数据格式时,这很容易破坏。它会导致很难发现的错误,除非你知道你在寻找什么。

更好的方法是将数据中的ID或类分配给绑定数据的每个元素,以便在拥有数据时可以直接选择它。这也会更有效率。