我想获取树中每个节点的属性。在线查看后,我找到了一种方法,但它不起作用。错误是(在attr(“description”)行:
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 :(得分:8)
您只需要获取所选元素的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
属性。