Javascript d3.js:删除/导航到子元素
我想知道通过选择D并单击delete(删除)按钮来删除子项A和B的最佳方式是什么:Javascript d3.js:删除/导航到子元素,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我想知道通过选择D并单击delete(删除)按钮来删除子项A和B的最佳方式是什么: d3.选择(#deleteBtn”)。在(“单击”,函数()上{ d3.选择(“.selected”).remove(); //如何删除子项呢? }); 除了使用遍历/递归函数外,是否有一种简单的d3方式导航到子数据? 也许有人能给我一个提示 您可以再次将所选节点的数据传递到包布局,以获得作为其子节点的所有节点的数组。然后使用键函数将该数组绑定到圆上,以按名称匹配节点,并将其删除。只要每个节点都有一个唯一的名称,
d3.选择(#deleteBtn”)。在(“单击”,函数()上{
d3.选择(“.selected”).remove();
//如何删除子项呢?
});代码>
除了使用遍历/递归函数外,是否有一种简单的d3方式导航到子数据?
也许有人能给我一个提示
您可以再次将所选节点的数据传递到包布局,以获得作为其子节点的所有节点的数组。然后使用键函数将该数组绑定到圆上,以按名称匹配节点,并将其删除。只要每个节点都有一个唯一的名称,这将起作用。以下是我的解决方案:
d3.select("#deleteBtn").on("click", function() {
d3.select(".selected").each(function(data){
var nodesToRemove = pack.nodes(data);
vis.selectAll("circle")
.data(nodesToRemove, function(d){
return d.name;
})
.remove();
vis.selectAll("text")
.data(nodesToRemove, function(d){
return d.name;
})
.remove();
})
});
以下是更新的JSFIDLE: