我必须在单击的节点下获取每个子节点的名称。假设我在一个函数中发送点击的节点:
getNodes(node){
$(node).children().each(function () {
//want child nodes name under the sent node(node)
});
}
我如何让这个工作?
我必须在单击的节点下获取每个子节点的名称。假设我在一个函数中发送点击的节点:
getNodes(node){
$(node).children().each(function () {
//want child nodes name under the sent node(node)
});
}
我如何让这个工作?
我一直在努力寻找方法。这是我想出的:
我没有使用 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")
by$(listItem ).find("a" ).text()
这仅适用于最后一层,因为叶子在标签中有它们的名字,但父母会打印更多。
希望这有帮助。