我们可以使用dojo.query获得基于CSS选择器中的某些元素,但我们如何在查询对象类型?
例如,获得页面上的所有文本框元素,然后使用dojo.connect绑定的功能?
Answer 1:
这是不完全的支持,但也有做这件事,因为我看到它的两种方式。
一,找出哪些是一个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页面的所有元素。 Allthough,请记住,dojo.query需要第二个参数为“parentNode”
文章来源: How to query on object type in dojo?