【发布时间】:2011-06-09 19:02:00
【问题描述】:
有没有办法从 jsTree 中清除所有节点,这比遍历所有节点一个一个地删除它们要快?
【问题讨论】:
标签: javascript jquery jstree
有没有办法从 jsTree 中清除所有节点,这比遍历所有节点一个一个地删除它们要快?
【问题讨论】:
标签: javascript jquery jstree
我发现的最简单的方法是在包含树的 div 上简单地调用 .empty。
$('#tree').empty();
您可以选择使用更具体的选择器作为empty() 的参数,但这对我来说很好。
【讨论】:
$('#tree').jstree("destroy").empty();
这对我有用。先销毁jstree元素和关联事件,然后清空包含jstree的div。
【讨论】:
在此处查看文档:http://www.jstree.com/documentation/core
.delete_node(节点)
删除一个节点。触发事件。
mixed node这可以是 DOM 节点、jQuery 节点或指向 要删除的元素。
看来你可以只做一个选择器来删除你想要的所有节点,不需要循环。
【讨论】:
myJsTree.delete_node('[treediv] > ul > li');
myTree.delete_node(myTree.get_node("#").children);
【讨论】:
在根节点上调用.remove(node)。
【讨论】:
下面的调用将销毁当前的 jsTree 实例,移除所有绑定的事件监听器,显然实现了移除所有节点的最终目标。不过这个方法有点矫枉过正,不得不说。
$("#DivElementContainingYourTree").jstree("init");
【讨论】:
$('#jstree').parent().html('<div id="#jstree"></div>');
【讨论】: