如何使用D3引用嵌套在另一个SVG元素(父)中的SVG(子)元素?

时间:2013-05-26 23:08:20

标签: svg d3.js nested parent-child

我有几个组(SVG G元素)嵌套在另一个组中,我想得到他们的ID。我使用D3 javascript库来创建SVG,代码看起来与此类似。

var body = d3.select("body");

var svg = body.append("svg")
    .attr("width", '100%')
    .attr("height", '100%')

var outerG = svg.append("g")
    .attr('id','outerG')

var innerG1 = outerG.append('g')
    .attr('id','innerG1')

var innerG2 = outerG.append('g')
    .attr('id','innerG2')

我尝试使用 childNodes 属性,但是 console.log(outerG [0] .childNodes)给了我undefined。找不到正确的答案用谷歌搜索,可以请有人给我一个提示怎么做?

1 个答案:

答案 0 :(得分:6)

这将有效:

console.log(outerG[0][0].childNodes);

请参阅jsFiddle here

您需要两个嵌套索引的原因是所有选择都是隐式分组的。如果您想了解更深层次的原因,或者想要更好地理解选择,请参阅this article