Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript dojo dijit.tree getChildren()未返回所有树节点_Javascript_Dojo - Fatal编程技术网

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

Javascript dojo dijit.tree getChildren()未返回所有树节点,javascript,dojo,Javascript,Dojo,我正在使用dojo 1.10.4,并注意到dijit.tree getChildren()函数只返回在dijit.tree中展开(显示和可见)的子(树)节点。如何循环遍历所有dijit.tree节点,而不管它们是否显示和可见 我可以轻松地遍历所有底层数据存储元素,但我正在尝试定位特定的树节点,以便使用“node.labelNode.style”设置它们的样式 在调用getChildren()之前,我可以通过编程方式扩展所有dijit.tree节点,但我希望保留用户对dijit.tree的视图

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

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

非常感谢您的建议。

我不确定这是否是您想要的,但这就是我们扩展所有节点的方式,与您的任务类似,从树中获取所有节点。我相信只要做一个简单的修改,你就能完成你的任务

假设我们有一个扩展树节点的函数,我们将调用它

    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);
                    }
                }
            },
\u expandTree:函数(节点){
if(node.hasChildren()){
无功电流节点;
for(var i=0;i
感谢您的回复,但问题是我想搜索所有dijit.tree节点,不管它们是否已展开,而不展开树节点,这样我就可以保留用户对dijit.tree的视图这就是它所做的。。。这会在整个树中循环,我告诉过你修改它的名称,然后做任何你需要做的事情。“expandTree”只是我们在所有节点中循环的函数的名称。谢谢。我没有意识到这就是代码所做的。谢谢你的帮助!我认为_expandTree函数将无法在整个树中循环,除非手动或通过_expandNode()或autoExpand:true属性展开。原因是,只有当树节点展开时,子节点才会被放置在DOM上。