jsTree-关闭特定级别的节点

时间:2018-07-06 15:01:02

标签: javascript jquery jstree

我有一个具有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);
     }    
  });
});

2 个答案:

答案 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});
             }
           });

当我想显示一个天蓝色容器的文件夹时,它对我有用。就我而言,容器是根节点。