d3缺少数组中的第一个值

时间:2013-11-01 12:14:51

标签: arrays d3.js

我想我有一个很简单的问题,但我无法弄清楚。我的数组如下:

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中。

1 个答案:

答案 0 :(得分:7)

您需要选择不存在的元素以使选择正常工作。也就是说,您的代码应该是

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

目前,您匹配数据的选择仅包含一个元素(“#tooltippos”),该元素与数据的第一个元素匹配。因此,这不在输入选择中而不是绘制。