2012-02-17 142 views
21

我想在D3中創建一些圖。到目前爲止,愛它,但我有點卡住了。 我想創建一個區域來保存數據點,另一個區域保存軸和標籤。 我想我會更加細緻,比更新圖形效率更高。但是我遇到的問題是,我似乎無法選擇SVG中的子元素。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") 

但是沒有運氣。有任何想法嗎?

+4

如果你想選擇一個'data'的'id',你應該選擇'#Graph svg#data',對吧? – Phrogz 2012-02-17 17:18:40

回答

19

讓我們試試這段代碼。

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

「g」表示選擇svg節點下的所有節點「g」。

0

使用append創建數據容器時,可以將選擇內容保存到變量中。

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

如果這樣你就不需要做出選擇(在您與一號線圖做了類似的方式)來完成,因爲它已經存儲在您的VAR dataContainer