2015-09-07 39 views
2

我正在使用dojo 1.10.4,并注意到dijit.tree getChildren()函数仅返回展开(显示和可见)的子节点(树)节点dijit.tree。如何循环遍历所有的dijit.tree树节点,而不管它们是否显示和可见?dojo dijit.tree getChildren()不返回所有树节点

  • 我可以轻松地遍历所有底层的数据存储元素,但我试图找到特定的树节点,以便我可以使用“node.labelNode.style”来设置它们的样式。
  • 我可以在调用getChildren()之前以编程方式展开所有dijit.tree节点,但我希望保留用户对dijit.tree的视图。

任何建议,非常感谢。

回答

1

我不确定这是否是你以后的样子,但这就是我们如何扩展所有节点,类似于您的任务,从树中获取所有节点。我相信,一个简单的修改,你就能实现你的任务

假设我们有一个功能,扩大树节点,我们要调用

this._expandTree(this._tree.rootNode); 

和功能本身

_expandTree: function (node) { 
       if (node.hasChildren()) { 
        var currentNode; 
        for (var i = 0; i < node.getChildren().length; i++) { 
         currentNode = node.getChildren()[i];        
         this._expandTree(currentNode); 
        } 
       } 
      }, 
+0

感谢您的回复,但问题是,我想通过所有的dijit.tree节点进行搜索,而不管它们是否展开而不展开树节点,以便我可以保留用户对dijit.tree – railser

+0

的看法,即它做了什么......这个厕所ps通过整棵树,我告诉你修改它的名字,并做你需要做的任何事情。 “expandTree”只是我们函数的名称,它循环遍历所有节点。 – belzebu

+0

谢谢。没有意识到这就是代码所做的事情。感谢帮助! – railser