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; });

現時点では、データを照合している選択には、データの最初の要素と一致する 1 つの要素 (「#tooltippos」) のみが含まれています。したがって、これは選択範囲に入らず、描画されません。

于 2013-11-01T12:19:14.860 に答える