繁体   English   中英

在jsTree中,如何按节点ID获取节点信息?

[英]In jsTree , How to get Node information by node id?

在jsTree中,如何按节点ID获取节点信息?

我知道跟随节点的id,即295然后如何获得完整的节点信息

<item id="295" parent_id="192" title="itemTitle"   version="1">    
            <content><name>Bhushan Sambhus</name></content>  
</item> 

上面渲染成jsTree的xml部分如下

    $("#treeViewDiv").jstree({ 
        "xml_data" : {
            "data" : "" + 
"<root>" + 
    "<item id="295" parent_id="192" title="itemTitle"   version="1">"+    
            "<content><name>Bhushan Sambhus</name></content>  "+
     "</item>"
        }
        "plugins" : [ "themes", "xml_data","ui" ]
    });

像跟随psudo代码的东西

 function getNodeByNodeID(node_id){
          // some code
          // $.jstree.get_node ...... etc ?
          // 
           return relatedNodeInformation;
        }




var nodeInfo =  getNodeByNodeID(providedNodeID) // psudo code
      // any api in jstree to get nodeInfo by  providedNodeID?


       var parent_id_value = nodInfo.attr("parent_id");    
       var title_value     = nodInfo.attr("title");    
       var version_value   = nodInfo.attr("version");
       var node_name       = nodInfo.children("a").text()
alert(parent_id_value+" :: "+title_value+" :: "+version_value+" :: "+node_name);

输入: 295

输出: 192 :: node_name :: 1 :: node_name

任何有关此事的帮助或指导将不胜感激

如果我正确理解你的问题,你可以像这样完成你想做的事情:

var nodInfo = $("#" + providedNodeId);

var parent_id_value = nodInfo.attr("parent_id");    
var title_value     = nodInfo.attr("title");    
var version_value   = nodInfo.attr("version");
var node_name       = nodInfo.children("a").text();

alert(parent_id_value+" :: "+title_value+" :: "+version_value+" :: "+node_name);

只是想帮助保持最新的答案。 使用jstree 3.1.0,使用以下代码获取节点对象(不是DOM对象):

var treeMain;  // reference holder

$(document).ready( function () {           // when the DOM is ready
     treeMain = $('#treeMenus').jstree();  // create the tree and get the reference
});

function getNode( sNodeID)
{
    return $.jstree.reference(treeMain).get_node(sNodeID);  // use the tree reference to fetch a node
}

我在StackOverflow上看到了这个问题的几个答案,所有人都谈到了回到树项的DOM对象。 我愿意打赌大多数人都会问这个问题是否真的要回到树项的底层JSON数据对象,这就是为什么他们说他们想要节点对象(具有.original属性)。 具体来说,您需要这样来实现诸如“创建”功能之类的功能,其中您需要使用设置为父JSON数据对象的ID的ParentID创建新的JSON数据对象。 我搜索了2天,但在jstree文档中没有找到任何清楚的解释:

$.jstree.reference(treeMain).get_node(sNodeID);

简单的电话。 在他们的辩护中,他们确实有一个埋在这里的例子:

http://www.jstree.com/docs/interaction/

但这是大多数人不会关心的一个例子(用户将在大多数时间选择节点),当然不清楚它实际上能做什么。 无论如何......希望这有助于拯救别人几天。 =)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM