我在这里构建了下表:
https://bl.ocks.org/simonbreton/d4d2ea338d1bacc6ce3d0a295529bcb4
但是,您可以看到,如果您尝试选择其他选项,则数据无法正确更新。
有些没有出现(例如图片中的蝙蝠侠),其他人没有删除。再次在图片中说明,我预计会删除超人,船长和Antman只看蝙蝠侠数据。
我的代码出了什么问题?
非常感谢!
答案 0 :(得分:0)
默认情况下,d3通过数组中的索引标识数据。它不适合过滤 - 一些元素被删除,它会改变后续元素的索引。在数据绑定中添加key function可能会有所帮助,但是,数据集也存在问题。它包含重复项,没有可以区分它们的属性。如果名称是唯一的,您可以使用如下的键函数:
var rows = tbody.selectAll("tr")
.data(filterdata, function (d) { return d.name})