2016-04-23 202 views
1

我想获取树中每个节点的属性。在网上查找后,我找到了一种方法来做到这一点,但它不起作用。错误的是(在attr的线(“说明”):如何获取jstree JSON数据中的节点属性

Uncaught TypeError: Cannot read property 'obj' of undefined 

这里是我的代码:

jQuery(document).ready(function() { 
    var $ = jQuery; 
    $('#jstree').jstree({ 'core' : { 
    'data' : [ 
     {"id":"parent","parent":"#","text":"parent"}, 
     {"id":"cs","text":"Short Stay","parent":"parent","li_attr":{"label":"Short Stay","description":"example"}}, 
     {"id":"ls","text":"ls","parent":"parent"},{"id":"cs_1","text":"cs_1","parent":"cs"}, 
     {"id":"ls_1","text":"ls_1","parent":"ls"},{"id":"cs_1_1","text":"cs_1_1","parent":"cs_1"}, 
     {"id":"cs_1_1_1","text":"cs_1_1_1","parent":"cs_1_1"}, 
     {"id":"cs_1_1_2","text":"cs_1_1_2","parent":"cs_1_1"} 
    ] 
} }) 
.on("select_node.jstree", 
    function(evt, data){ 
      $('#data').html(data.rslt.obj.attr("description")); 
    } 
); 
    }); 
+0

您的意思是属性值或属性名称? –

回答

5

你只需要获得所选元素的ID,然后得到的属性该元素:

$(function() { 
    $('#jstree').jstree({ 'core' : { 
    'data' : [ 
     {"id":"parent","parent":"#","text":"parent"}, 
     {"id":"cs","text":"Short Stay","parent":"parent","li_attr":{"label":"Short Stay","description":"example"}}, 
     {"id":"ls","text":"ls","parent":"parent"},{"id":"cs_1","text":"cs_1","parent":"cs"}, 
     {"id":"ls_1","text":"ls_1","parent":"ls"},{"id":"cs_1_1","text":"cs_1_1","parent":"cs_1"}, 
     {"id":"cs_1_1_1","text":"cs_1_1_1","parent":"cs_1_1"}, 
     {"id":"cs_1_1_2","text":"cs_1_1_2","parent":"cs_1_1"} 
    ] 
} }).on("select_node.jstree", 
    function(evt, data){ 
      var node_id = (data.node.id); // element id 
      var description = $("#"+node_id).attr("description"); // get value of element attribute 
      $('#data').html(description); 
    } 
); 
}); 

注意,不是所有的元素都具有description属性