Javascript dojo dijit.tree getChildren()未返回所有树节点
我正在使用dojo 1.10.4,并注意到dijit.tree getChildren()函数只返回在dijit.tree中展开(显示和可见)的子(树)节点。如何循环遍历所有dijit.tree节点,而不管它们是否显示和可见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的视图
- 我可以轻松地遍历所有底层数据存储元素,但我正在尝试定位特定的树节点,以便使用“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上。