4

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

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

4

1 回答 1

10

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

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

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

于 2013-11-01T12:19:14.860 回答