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

jstree jquery plugin - Get all child and sub child nodes of parent

本文关键字:子节点 父节点 jquery 插件 获取 jstree      更新时间:2023-10-23

我正在使用jsTree jquery插件

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

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

我尝试了以前的解决方案,但它不适用于最新版本的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
       // ...
       // ...
       // ...
    }
});

我找到了一种方法。在我的例子中,我使用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
                    // ...
                });
            });