我是 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; });
任何原因或任何规则均适用。
最佳答案
在第一种情况下,您仅更新新单元格上的文本,而不是旧单元格上的文本。当您像这样链接 .enter()
时,以下所有链接的方法都适用于 .enter()
返回的对象,即输入选择:添加了单元格也就是说。
阅读this
关于javascript - D3.js 方法链接命令在我拆分它时不起作用,它起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30560633/