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();
});