Directory jstree:无法获取叶节点的包含文件夹

Directory jstree:无法获取叶节点的包含文件夹,directory,parent,jstree,Directory,Parent,Jstree,我已经为这个问题挣扎了好几天了 我需要获取要删除的文件夹(rel='folder'id的节点,其中包含叶节点(rel='default'的节点)) 我的服务器端根据类型从数据库中删除节点。对于文件夹(这不是问题),对于叶子,我需要容器文件夹的id才能删除其中的叶子 我尝试过各种场景,它们都是灾难性的,返回unde或-1 即使是最流行的方式: (data.inst._get_parent(data.rslt.obj)==-1?'root_node':data.inst._get_parent(da

我已经为这个问题挣扎了好几天了

我需要获取要删除的文件夹(rel='folder'id的节点,其中包含叶节点(rel='default'的节点))

我的服务器端根据类型从数据库中删除节点。对于文件夹(这不是问题),对于叶子,我需要容器文件夹的id才能删除其中的叶子

我尝试过各种场景,它们都是灾难性的,返回unde或-1

即使是最流行的方式:

(data.inst._get_parent(data.rslt.obj)==-1?'root_node':data.inst._get_parent(data.rslt.obj).attr('id'));
对于我试图从树中的任何位置删除的所有叶节点,总是返回-1

这里还有一些代码:

.bind("remove.jstree", function (e, data) {
    data.rslt.obj.each(function () {
         var node = data.rslt.obj;

         console.log('rel:'+node.parent("li[rel='folder']").attr("id")); // always undef
         var node2=$("#demo").jstree("_get_parent", data.rslt.obj.attr("id"));
         console.log("another try:"+node2.attr("id"));  always undef
         var node_parent=(data.inst._get_parent(data.rslt.obj)==-1?'root_node':data.inst._get_parent(data.rslt.obj).attr('id'));
         console.log('node_parent for ' + data.rslt.obj.attr("id") + ':'+node_parent);// always -1
         var parents = [];
        $(data.rslt.obj).parents('li').each(function () {
            parents.push({ id: $(this).attr("id"), description: $(this).children("a").text() });
        });
        console.log('nb of parents:'+parent.length); // always 0;
        $.ajax({
            async : false,
            type: 'POST',
            url: "ajaxTree.php",
            data : { 
                "operation" : "remove_node", 
                "id" : this.id.replace("node_",""),
                 "type" : data.rslt.obj.attr("rel"),
                 "parent": node_parent
            }, 
            success : function (r) {
                if(!r.status) {
                    //data.inst.refresh();
                    $.jstree.rollback(data.rlbk);
                }
            }
        });

    });
})
谢谢你留下一张你认为有用的纸条,我试试看,承诺:D

You can use "data.inst" - the tree instance 
and "_get_parent" to get the parent: 

data.inst._get_parent(data.rslt.obj); 

中可以找到此信息,为什么不添加“容器”你的叶子的id?只是一个简单的想法。这可能是一个选项。我可以修改id以包含父文件夹的id,如“node\u 123\u parent\u 321”,但这意味着在使用id的所有ajax调用中,如create\u node、delete\u node等,都需要使用og regexp来获取这两个值。你尝试过
https://groups.google.com/forum/?fromgroups=#!topic/jstree/wHIT4gIdcIY
from,但如果没有其他事情做,我仍然会记得这个解决方案。谢谢Radek:)是的Radek我尝试了console.log这个方法(见下面的代码):)