加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Dojo中是否有一种方法可以在DOM元素中找到所有窗口小部件后代

发布时间:2020-12-16 21:20:43 所属栏目:百科 来源:网络整理
导读:在Dojo中是否有一种方法可以在DOM元素中找到所有窗口小部件后代?我使用下面的示例,它将仅列出元素的子元素,在这种情况下,任何作为文档对象的子元素的小部件,但不是所有后代或嵌套小部件.希望这很清楚. var widgets = dijit.findWidgets(dojo.doc);dojo.forE
在Dojo中是否有一种方法可以在DOM元素中找到所有窗口小部件后代?我使用下面的示例,它将仅列出元素的子元素,在这种情况下,任何作为文档对象的子元素的小部件,但不是所有后代或嵌套小部件.希望这很清楚.
var widgets = dijit.findWidgets(dojo.doc);
dojo.forEach(widgets,function(w) {
    console.log(w);
});

我可以编写自己的递归函数,但我想确保我没有错过已经执行此操作的Dojo方法.

非常感谢

嗯,dijit.findWidgets(parentWidget.domNode)?

编辑哦,现在我发现Widgets不会递归搜索.

我检查了dijit.findWidgets源代码,它所做的只是检查具有在dijit注册表中表示的widgetid属性的节点.以下版本使用dojo.query以递归方式执行相同的搜索:

function findEvenTheNestedWidgets(innitialNode){
    return dojo.query("[widgetid]",innitialNode)
    .map(dijit.byNode)
   .filter(function(wid){ return wid;}) //filter invalid widget ids that yielded undefined
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读