我有nodes
变量,它是一个包含图中所有节点的数组。每个节点在DOM中都有一个SVG g
(组)SVG元素。
要选择具有DOM元素的数据,我会d3.select(myElement).data()[0]
,但如何获取包含数据的DOM元素?
答案 0 :(得分:3)
您可以使用D3的数据匹配来完成此操作。我们的想法是让数据和#34;识别"正确的元素。
d3.selectAll("allMyElements").data([datumIwantElementFor], suitableKeyFunction);
完整演示here。
要明确,我不建议采用这种方法。当您向文档添加更多元素并意外选择其中一些元素,在多个位置使用相同数据或更改数据格式时,这很容易破坏。它会导致很难发现的错误,除非你知道你在寻找什么。
更好的方法是将数据中的ID或类分配给绑定数据的每个元素,以便在拥有数据时可以直接选择它。这也会更有效率。