1

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

4

1 回答 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 回答