D3选择SVG内的元素

时间:2012-02-17 04:04:22

标签: javascript svg d3.js

我正在尝试在D3中创建一些图表。到目前为止爱它,但我有点卡住了。 我想创建一个区域来保存数据点,另一个区域来保存轴和标签。 我想我会比这更精细,以更高效地更新图表。但我遇到的问题是我似乎无法在SVG中选择子元素。

这就是我所拥有的:

var graph = d3.select('#Graph svg')
if (graph[0][0] == null){
    graph = d3.select('#Graph')
        .append("svg:svg")
        .attr("width",width)
        .attr("height",height)
        .attr("class","chart");
}

graph.append("svg:g")
    .attr("id","data")

现在我还没有找到一种方法来选择该数据容器。我试过了

d3.select("#Graph svg data")

但没有运气。任何想法?

2 个答案:

答案 0 :(得分:21)

让我们试试这段代码。

d3.select("#Graph svg").selectAll("g")

“g”表示在svg节点下选择所有节点“g”。

答案 1 :(得分:1)

使用append创建数据容器时,可以将选择保存到变量。

var dataContainer = graph.append("svg:g")
    .attr("id","data");

如果以这种方式完成,您甚至不需要再次进行选择(以与第1行var graph类似的方式),因为选择已存储在var中dataContainer