jstree jquery插件 - 获取父级的所有子节点和子子节点

时间:2012-07-16 20:15:04

标签: javascript jquery-plugins jstree

我正在使用jsTree jquery plugin

我正在尝试获取所选父节点的所有节点和子节点。但不知何故,除非我使用递归,否则它不起作用。是否有更好的jsTree方法?

3 个答案:

答案 0 :(得分:4)

您可以使用此选择器获取完整树:$("#demo1").find("li > a")

答案 1 :(得分:4)

我尝试了之前的解决方案,但它无法使用最新版本的jsTree(v3.2.1)。以下是获取父节点和子节点的更新解决方案。

$("#myTree").bind('selected_node.jstree', function (node, data) {
    var selectedNodes = $("#myTree").jstree(true).get_json(data.node.id, { flat: true });
    for (var i = 0; i < selectedNodes.length; i++) {
       // Apply logic here
       // ...
       // ...
       // ...
    }
});

答案 2 :(得分:2)

我找到了一种方法来做到这一点。在我的情况下,我使用xml作为树的数据源。我以下列方式将open_node事件绑定到jstree。请注意,即使我使用的是xml,内部结构也是html数据的结构。

// jsTree Configuration hash
var jsTreeConfig = {};

$("#demo1").jstree( jsTreeConfig )
            .bind('open_node.jstree', function( e, data ) {
                var parentObj = data.rslt.obj; // parent object
                var jstreeInstance = data.inst; // jstree instance
                $(data.rslt.obj).find("li").each( function( idx, listItem ) {
                    var child = $(listItem); // child object
                    // do Stuff with child which can be any level of hierarchy depth
                    // ...
                });
            });