为什么删除功能不起作用?

时间:2014-05-16 05:57:06

标签: javascript jquery

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

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

5 个答案:

答案 0 :(得分:3)

您需要使用双反斜杠-来转义特殊字符\\。来自 docs

  

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

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

Updated Fiddle


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

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

<强> Updated Fiddle

答案 1 :(得分:0)

为什么不尝试使用empty()

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

Updated Fiddle

即使您再次关闭并打开节点,这也完全符合您的要求,将其从dom中删除。

注意: 目前我只能看到你需要在点击删除之前放下菜单,否则它不会删除元件..

答案 2 :(得分:0)

只需获取变量中的元素并删除即可。

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

答案 3 :(得分:0)

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

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

而不是:

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

希望它有所帮助!

答案 4 :(得分:0)

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

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