我正在使用jsTree jquery 插件
我正在尝试获取选定父节点的所有节点和子节点。但不知何故,除非我使用递归,否则它不起作用。jsTree 是否有更好的方法?
我正在使用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
// ...
});
});