我必须在单击的节点下获取每个子节点的名称。假设我在一个函数中发送被点击的节点:
getNodes(node){
$(node).children().each(function () {
//want child nodes name under the sent node(node)
});
}
我该如何运作?
答案 0 :(得分:1)
我一直在努力寻找方法。以下是我提出的建议:
我没有使用jsTree,而是使用了JQuery选择器。这很好用,因为每个节点的元数据都存储在jQuery数据中。
以下是我的观点:
$( "#treeDiv" ).jstree( {
"json_data":{data:jsTree},
"themes":{
"theme":"classic",
"dots":false,
"icons":false
},
"plugins":[ "themes", "json_data", "ui" ]
} ).bind( "select_node.jstree",
function ( e, data ) {
$(data.rslt.obj).find("li").each( function( idx, listItem ) {
console.log( $(listItem).data("name") );
});
} );
这将打印控制台中的所有名称。只要您将它们添加为元数据。有关元数据的详细信息,请参阅jsTree文档:http://www.jstree.com/documentation/json_data
第二个选项是将$(listItem).data("name")
替换为$(listItem ).find("a" ).text()
这仅适用于最后一个级别,因为叶子在标记中有其名称,但父级将打印更多。
希望这会有所帮助。