从控制台中的D3js selectAll获取组?

时间:2016-01-28 13:46:21

标签: d3.js

在更好地理解D3.js的细节的背景下,我有点困惑selectAll如何运作。

例如,基于on this codepen,可以写:

vis.selectAll("circle.nodes")

或:

vis.selectAll("my_own_tag_group")

但是在执行D3js代码之后,我希望selectAll提供一个我可以从Web控制台访问的组:

document.getElementsByClassName('my_own_tag_group')
HTMLCollection [  ] (empty)

我在http://bost.ocks.org/mike/selection/

中给出的解释中遗漏了什么

1 个答案:

答案 0 :(得分:1)

至少从你的代码来看,你看起来选择错了。 selectAll跟随CSS3 selector rules

  

D3使用CSS3来选择元素。例如,您可以通过标签(“div”),类(“.awesome”),唯一标识符(“#foo”),属性(“[color = red]”)或包含(“父子”)进行选择。选择器也可以相交(“.this.that”表示逻辑AND)或联合(“.this,.that”表示逻辑OR)。如果您的浏览器本身不支持选择器,则可以在D3之前包含Sizzle以实现向后兼容性。

因此,您可能想要使用

vis.selectAll(".my_own_tag_group")

如果它引用了一个类,并且

vis.selectAll("#my_own_tag_group")

如果它引用了一个id(可能有意义或无意义)。

如果它引用其他内容,您可能需要对其进行重组以使其引用类。