dojo dijit.tree getChildren()不返回所有树节点

时间:2015-09-07 01:28:29

标签: javascript dojo

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

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

非常感谢任何建议。

1 个答案:

答案 0 :(得分: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);
                    }
                }
            },