2013-11-01 31 views
2

我想我有一個很簡單的問題,但我無法弄清楚。我的陣列如下:d3缺少數組中的第一個值

var wordcount = [1, 2, 3, [{name: 'A', values: [0,1,3,9, 8, 7]}, 
          {name: 'B', values: [0, 10, 7, 1, 1, 11]}, 
          {name: 'C', values: [3, 1, 4, 4, 4, 17]}, 
          {name: 'D', values: [4, 77, 2, 13, 11, 13]} 
]]] 

,我用下面的代碼來獲得A,B,C,和d

 d3.select("#tooltippos")      
      .data(d[3]) 
      .enter() 
      .append("div") 
      .text(function(d) { return d.name; }); 

,但我一直失蹤的第一個字母。只有B,C和D出現在div中。

回答

7

您需要選擇不存在的元素以使選擇正常工作。也就是說,你的代碼應該是

d3.select("#tooltippos").selectAll("div")     
     .data(d[3]) 
     .enter() 
     .append("div") 
     .text(function(d) { return d.name; }); 

此刻,你正在對匹配的數據選擇只包含一個元素(「#tooltippos」),這是與數據的第一個元素匹配。因此,這不在輸入選擇中,也沒有繪製。

+0

真棒!非常感謝!! –

+0

英國電信,你可以通過點擊'勾號'來標記拉爾斯的答案。 – ninjaPixel