我是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; });
任何理由或任何规则都适用于此。
答案 0 :(得分:0)
在第一种情况下,您只更新新单元格上的文本,而不是旧单元格。当您链接.enter()
时,链接的所有以下方法都适用于.enter()
返回的对象,即输入选择:换句话说,添加了单元格。
阅读this