Dojo 有没有办法找到 DOM 元素中的所有小部件后代?

发布于 2024-12-11 15:32:38 字数 293 浏览 0 评论 0原文

Dojo 有没有办法找到 DOM 元素中的所有小部件后代?我使用下面的示例,它只会列出元素的子元素,在这种情况下,属于文档对象子元素的任何小部件,但不是所有后代或嵌套小部件。希望这是清楚的。

var widgets = dijit.findWidgets(dojo.doc);
dojo.forEach(widgets, function(w) {
    console.log(w);
});

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

非常感谢

Is there a way in Dojo to find all widget descendants in a DOM element? I used the example below it will only list the children of the element, in this case any widgets that are children of the document object, but not all the descendants or nested widgets. Hopefully that's clear.

var widgets = dijit.findWidgets(dojo.doc);
dojo.forEach(widgets, function(w) {
    console.log(w);
});

I could just write my own recursive function but I want to make sure I'm not missing out on a Dojo method which already does this.

Many thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱花落人离去 2024-12-18 15:32:38

嗯,dijit.findWidgets(parentWidget.domNode)

编辑哦,现在我需要findWidgets不递归搜索。

我检查了 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
}

Hmm, dijit.findWidgets(parentWidget.domNode) ?

Edit Oh, now I nee findWidgets doesn't search recursively.

I checked the dijit.findWidgets source code and all it does is check for nodes with a widgetid attribute that are represented in the dijit registry. The following version uses dojo.query to do this same search recursively:

function findEvenTheNestedWidgets(innitialNode){
    return dojo.query("[widgetid]", innitialNode)
    .map(dijit.byNode)
   .filter(function(wid){ return wid;}) //filter invalid widget ids that yielded undefined
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文