我们可以使用dojo.query来获取基于CSS选择器的某些元素,但是我们如何查询对象类型?
例如,获取页面上的所有TextBox元素,然后使用dojo.connect绑定函数?
答案 0 :(得分: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'