我们可以使用dojo.query来获取基于CSS选择器的某些元素,但我们如何查询对象类型
例如,获取页面上的所有TextBox元素,然后使用dojo.connect绑定函数?
这不是完全支持的,但在我看来有两种方法可以实现。
首先,找出哪个是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个小部件。第一个必须展开页面的所有元素。不过,请记住,dojo.query使用第二个参数作为'parentNode'