1

我有一个带有列标题的数组,我希望我的第一个单元格有“A1”作为标题。我试过这样:

var title=mtable.append("thead").append("tr");
title.append("td").text("A1");
title.selectAll("td")
        .data(lTitre)
        .enter().append("td")
        .text(function(d) { return d.key; });

我的代码没有绘制第一列标题:2007(如下所示)。我该如何解决这个问题?

<thead>
  <tr>
    <td>A1</td>
 !!!! <td>2007</td> !!!!! is missing here 
    <td>2008</td>
    <td>2009</td>
    <td>2010</td>
    <td>2011</td>
  </tr>
</thead>
4

1 回答 1

1

使用您当前的代码,如果您检查__data__绑定到<td>A1</td>,您会看到它有__data__.key == 2007. 发生这种情况是因为只要您的selectAll()语句匹配当前选择中的任何元素,该.data()函数就会在创建输入选择之前将数据绑定到现有元素。要解决此问题,只需使用selectAll()与任何现有元素都不匹配的函数:

var title = mtable.append("thead").append("tr");
title.append("td").text("A1");
title.selectAll(".new")
        .data(lTitre)
        .enter().append("td")
        .text(function(d) { return d.key; });
于 2012-07-03T21:46:14.353 回答