单击按钮时,在jstree中按ID删除节点

我正在使用jstree ,我想在单击按钮后通过其ID删除特定节点。

这是我的html列表格式的树:

 

这是我的按钮事件(我有几个按钮,因此数组):

 buttons[0].addEventListener( "click", function( ev ) { $("#testtree").jstree("remove", $("111")); }); 

我缺少什么想法?

更新:

我已经纠正了错字,但它仍然无效。 这是完整的代码,也许是其他地方的错误?

   jstree test        $(document).ready(function() { $("#testtree").jstree({ "plugins" : [ "themes", "html_data", "checkbox", "ui" ], "core": { "initially_open": ["1"]} }); }); var buttons = document.querySelectorAll("button"); buttons[0].addEventListener( "click", function( ev ) { $("#testtree").jstree("remove","#111"); });    

根据jsTree 文档,您可以像这样删除

  $("#testtree").jstree("remove","#111"); 

没有$()

  $("#testtree").jstree({ "plugins": ["themes", "html_data", "checkbox", "ui", "crrm"], "core": { "initially_open": ["1"] } }); 

你需要在插件中添加“crrm”

jsTree的手册 (版本3.0.0)说:

请记住,默认情况下,会阻止对树的所有修改(创建,重命名,移动,删除)。 要启用它们,请将core.check_callback设置为true

您还可以使用函数指定允许的修改类型。 例如,要仅允许删除节点:

 $('#tree').jstree({ 'core' : { 'check_callback' : function (operation, node, node_parent, node_position, more) { // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node' // in case of 'rename_node' node_position is filled with the new node name return operation === 'delete_node'; } } }); 

任何答案都适合我。 我更喜欢使用它:

 $.jstree._reference("#tree-container or node or jquery selector").delete_node(node); 

希望它可以帮到某人。

这对我很有用。

我有超过70,000个叶子节点,这瞬间消失。

 this.getFilterTree().jstree("destroy"); this.getFilterTree().html(""); //return tree holder div getFilterTree: function() { return $('#jstreeHolder'); } 

删除后,您可以再次实例化树!

这对我有用而不使用任何外部插件。

 $('#treeid').jstree().delete_node([node.id]); $('#treeid').jstree("refresh"); 

添加check_callback = true; jsTree config的内核(例如core.check_callback = true; ),然后是$('#tree').jstree(true).delete_node(*yourNodeId*);

小提琴: https : //fiddle.jshell.net/sqiudward/kf2eym0k/

目前“crrm”插件未激活。

根据jsTree 文档,您可以删除节点。

例如;

 var node = $("#tree").jstree(true).get_node("111");//111 is node id $("#tree").jstree("delete_node", node); 

我认为有一个拼写错误:尝试:

 $("#testtree").jstree("remove", $("#111"));