为什么删除函数不工作

why remove function not working ?

本文关键字:工作 函数 删除 为什么      更新时间:2023-09-26

你能告诉我为什么删除功能不工作吗?我正在从菜单选项中删除代码。http://jsfiddle.net/fuu94/136/

 $('#remove').click(function(){
     alert('dd') ;
        $("#b-a-1").remove();
     $('#tree').jstree(true).delete_node("#b-a-1");
    })

需要用双反斜杠''转义特殊字符-。从文档:

使用任何元字符(如! " # $ %和 ;'()*+,./:;& lt; => ?@[]^ '{|}~)作为名称的文字部分,它必须用两个反斜杠转义:''

$("#b''-a''-1").remove();

更新小提琴


当使用delete_node方法删除节点时,您不需要指定#,因为它将始终将您的obj视为唯一元素:

$("#tree").jstree(true).delete_node('b-a-1') ;

更新小提琴

你有一个小错误!Api不是很清楚,但正确的sintax是:

$("#tree").jstree(true).delete_node('b-a-1')

代替:

$("#tree").jstree(true).delete_node('#b-a-1')

希望有帮助!

你为什么不试试empty()呢?

   $('#remove').click(function(){
        alert('dd') ;
        $("#b-a-1").empty();
        $('#tree').jstree(true).delete_node("#b-a-1");
    })

更新小提琴

这正是您所需要的,从dom中删除它,即使您关闭并再次打开该节点。

注意:目前我能看到的唯一缺点是你必须在点击删除之前将菜单拉下来,否则它不会删除元素。

获取变量中的元素并删除。

var a = $("#b-a-1");
    $(a).remove();

下面的代码删除选定的元素。jsfiddle

    var sel = $("#tree").jstree("get_selected"); 
    $("#tree").jstree("remove", sel);      
    $('#tree').jstree(true).delete_node(sel);