如何用递归函数展开dojo树

如何用递归函数展开dojo树,dojo,tree,Dojo,Tree,嗨,我想通过编程方式展开dojo1.7树 如何使用递归函数实现第n个节点 此代码将节点扩展到第三级,但我需要它应该自动打开第n个节点 function expandAll(object) { object = object.slice(0,1); nodes = tree.rootNode.getChildren(); for (var i = 0; i < nodes.length; i++) { node = nodes[i]; if (node.is

嗨,我想通过编程方式展开dojo1.7树

如何使用递归函数实现第n个节点 此代码将节点扩展到第三级,但我需要它应该自动打开第n个节点

function expandAll(object) {
      object = object.slice(0,1);


nodes = tree.rootNode.getChildren();

for (var i = 0; i < nodes.length; i++) {
    node = nodes[i];
    if (node.isExpandable) {            
       if (node.getTreePath()[1].id == object[1]) {

            tree._expandNode(node);
            var childs = node.getChildren();

            for ( j = 0; j < childs.length; j++) {
                child = childs[j];
                if (child.getTreePath()[2].id == object[2]) {
                    tree._expandNode(child);
                    console.log("->" + child.getTreePath()[2].name[0]);
                    if (child.isExpandable) {
                        var subchilds = child.getChildren();
                        for ( k = 0; k < subchilds.length; k++) {
                            subchild = subchilds[k];
                            console.log("-> ->" + subchild.getTreePath()[3].name[0]);
                        }
                    }
                }

            }
        }
    }
}

您应该研究使用递归,这样您就不局限于一定数量的级别。