我有一个具有5个节点级别的jstree。我想遍历所有节点以关闭级别为4的那些节点,以便除非单击4进行扩展,否则不会看到级别5。如果有比迭代更好的方法,我全都听着!
$("#mytree").bind('ready.jstree', function(event, data) {
var $tree = $(this);
$($tree.jstree().get_json($tree, {
flat: true
}))
.each(function(index, value) {
var node = $("#mytree").jstree().get_node(this.id);
var lvl = node.parents.length;
if (lvl = 4) {
node.close_node(this, true);
}
});
});
答案 0 :(得分:0)
我发现了一个答案,以防其他人想要这样做。
我先关闭所有内容,然后打开想要的内容,而不是先打开所有内容然后关闭:
$("#mytree").bind('ready.jstree', function(event, data) {
var $tree = $(this);
$($tree.jstree().get_json($tree, {
flat: true
}))
.each(function(index, value) {
var node = $("#mytree").jstree().get_node(this.id);
var lvl = node.parents.length;
if (lvl <= 3) {
$('#mytree').jstree().open_node({"id":node.id});
}
});
});
答案 1 :(得分:0)
如果要打开第一级的节点,可以尝试一下。
$('#myTree li').each( function() {
var node=$("#myTree").jstree().get_node(this.id);
var level = node.parents.length;
if(level<=1){
$('#myTree').jstree().open_node({"id":node.id});
}
});
当我想显示一个天蓝色容器的文件夹时,它对我有用。就我而言,容器是根节点。