在更好地理解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)
中给出的解释中遗漏了什么
答案 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(可能有意义或无意义)。
如果它引用其他内容,您可能需要对其进行重组以使其引用类。