我们可以使用 dojo.query 来获取基于 CSS 选择器的某些元素,但是我们如何查询对象类型呢?
比如获取页面上的所有TextBox元素,然后使用dojo.connect绑定一个函数?
问问题
1732 次
1 回答
3
这不完全受支持,但我认为有两种方法可以做到这一点。
一,找出 TextBox ( .dijitTextBox
) 的唯一类,调用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
,测试declaredClass
,如果它dijit.form.TextBox
- 连接。
var textboxArray = dojo.filter(dijit.registry._hash, function(widget) {
return widget.declaredClass && widget.declaredClass == 'dijit.form.TextBox';
})
根据您的设置,选择最有效的设置。后者通常是最好的——除非您的页面中有 100 个小部件。第一个必须对页面的所有元素进行 xpath。尽管如此,请记住 dojo.query 将第二个参数作为“parentNode”
于 2012-08-19T13:22:30.177 回答