d3.js树:如何删除节点';当我点击它时,它是兄弟姐妹吗?

d3.js树:如何删除节点';当我点击它时,它是兄弟姐妹吗?,d3.js,tree,nodes,jstree,siblings,D3.js,Tree,Nodes,Jstree,Siblings,这里总共有d3个新手 我使用了一些非常有用和信息丰富的互联网教程制作了一个粗略的树形图 现在,当单击一个节点时,其同级节点的子节点将崩溃 if (d !== root) { if (d.parent){ d.parent.children.forEach(function(element) { if (d !== element) { collapse(element); } }); } } 相反,我现

这里总共有d3个新手

我使用了一些非常有用和信息丰富的互联网教程制作了一个粗略的树形图

现在,当单击一个节点时,其同级节点的子节点将崩溃

 if (d !== root) {
    if (d.parent){
        d.parent.children.forEach(function(element) {
        if (d !== element) {
            collapse(element);
        }
    });
}
}

相反,我现在希望在单击节点时删除每个级别上的同级,并在关闭节点时重新显示


我知道我需要在函数click(d)中这样做,我一直坚持的是,我可以修改我的代码以简单地用某种删除函数替换崩溃的代码吗?有没有一个我完全忽略的简单解决方案

因此,如果查看
单击(d)
的最后一位,您会发现它正在检查节点是否有父节点,并折叠所有与单击的节点不相等的节点。如果不折叠它们,而是将它们从父对象的.children属性移动到父对象的.children属性中,则应隐藏它们

然后您只需要编写一个案例,其中父对象在.u子对象中,并将它们移回.children