当我拆分它时,D3.js方法链接命令不能正常工作

时间:2015-05-31 17:49:23

标签: javascript jquery d3.js method-chaining

我是D3.js的新人, 当我使用这个代码时,它不起作用,(它是重绘的一部分,当第一次运行它再次调用重绘时工作得很好,它的表现非常出色)

var rows=tbody.selectAll('tr').data(roster);
rows.enter().append('tr');
rows.exit().remove();
rows.selectAll('td').data(function(row) { return columns.map(function(col) {
  return row[col];
});}).enter().append('td').text(function(d) {return d;} );

当我将链条分解成较小的链条时,它会起作用。

var rows=tbody.selectAll('tr').data(roster);
rows.enter().append('tr');
rows.exit().remove();

var cells = rows.selectAll("td")
.data(function(row) { return columns.map(function(col) {
  return row[col];
});});
cells.enter().append("td");
cells.text(function(d) { return d; });

任何理由或任何规则都适用于此。

1 个答案:

答案 0 :(得分:0)

在第一种情况下,您只更新新单元格上的文本,而不是旧单元格。当您链接.enter()时,链接的所有以下方法都适用于.enter()返回的对象,即输入选择:换句话说,添加了单元格。

阅读this