Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3.js:删除/导航到子元素_Javascript_Jquery_D3.js - Fatal编程技术网

Javascript d3.js:删除/导航到子元素

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

我想知道通过选择D并单击delete(删除)按钮来删除子项A和B的最佳方式是什么:

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: