0

我必须在单击的节点下获取每个子节点的名称。假设我在一个函数中发送点击的节点:

getNodes(node){
$(node).children().each(function () {
  //want child nodes name under the sent node(node)
});
}

我如何让这个工作?

4

1 回答 1

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")by$(listItem ).find("a" ).text()

这仅适用于最后一层,因为叶子在标签中有它们的名字,但父母会打印更多。

希望这有帮助。

于 2012-06-09T15:22:14.870 回答