如何在dojo中查询对象类型?

2024-01-17

我们可以使用 dojo.query 来获取基于 CSS 选择器的某些元素,但是我们如何查询对象类型呢?
比如获取页面上所有的TextBox元素然后使用dojo.connect绑定一个函数?


这并不完全支持,但据我所知,有两种方法可以做到这一点。

一、找出 TextBox 的唯一类(.dijitTextBox), call dojo.query('.dijitTextBox'),循环结果dojo.forEach并获取小部件dijit.getEnclosingWidget(domnode)

var textboxArray = [];
dojo.forEach(dojo.query('.dijitTextBox'), function(domnode) {
  textboxArray.push(dijit.getEnclosingWidget(domnode));
});

或者两个,循环dijit.registry._hash, test declaredClass, 如果它是dijit.form.TextBox- 连接。

var textboxArray = dojo.filter(dijit.registry._hash, function(widget) {
  return widget.declaredClass && widget.declaredClass == 'dijit.form.TextBox';
})

根据您的设置,选择最有效的一种。后者通常是最好的 - 除非您的页面中有数百个小部件。第一个必须对页面的所有元素进行 xpath 处理。尽管如此,请记住 dojo.query 将第二个参数作为“parentNode”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在dojo中查询对象类型? 的相关文章