Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 Fancytree:删除没有子节点的节点_Javascript_Jquery_Fancytree - Fatal编程技术网

Javascript Fancytree:删除没有子节点的节点

Javascript Fancytree:删除没有子节点的节点,javascript,jquery,fancytree,Javascript,Jquery,Fancytree,我要删除选定的节点并将所有子节点移动到它所在的位置。 我使用代码: ref = $('#tree').fancytree("getTree"), searchIDs = ref.getSelectedNodes(); searchIDs.forEach(function(node){ $children = node.children; if ($children!==null)node.parent.addChildren($children,node.getNextSibling())

我要删除选定的节点并将所有子节点移动到它所在的位置。 我使用代码:

ref = $('#tree').fancytree("getTree"),
searchIDs = ref.getSelectedNodes();

searchIDs.forEach(function(node){
 $children = node.children;
 if ($children!==null)node.parent.addChildren($children,node.getNextSibling());
 node.remove();
});
其中#tree是带ul\li的div。如果节点>1,我有错误“UncaughtTypeError:无法调用null的方法'addChildren',并且只删除了一个节点。

我建议改为使用:

请注意,当选定节点是其他选定节点的后代时,您可能必须添加一些特殊处理,例如迭代反向或放弃嵌套节点。

我建议改用:

请注意,当选定节点是其他选定节点的后代时,您可能必须添加一些特殊处理,例如迭代反向或放弃嵌套节点。

我建议改用:

请注意,当选定节点是其他选定节点的后代时,您可能必须添加一些特殊处理,例如迭代反向或放弃嵌套节点。

我建议改用:


请注意,当选定节点是其他选定节点的后代时,您可能需要添加一些特殊处理,例如迭代反向或放弃嵌套节点。

感谢您提供上述解决方案。感谢您提供上述解决方案。感谢您提供上述解决方案。感谢您提供上述解决方案。感谢您提供上述解决方案。
var tree = $("#tree").fancytree("getTree"),
    selNodes = tree.getSelectedNodes();

selNodes.forEach(function(node) {
    while( node.hasChildren() ) {
        node.getFirstChild().moveTo(node.parent, "child");
    }
    node.remove();
});