如何在dojo中查询对象类型



我们可以使用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'

相关内容

  • 没有找到相关文章

最新更新