dojo 中的 dijit.registry.byClass 的替换
2011-01-07 11:40
148 查看
使用 dijit.registry.byClass 可以很方便的将某一类的 widget 筛选出来,比如以下代码可以筛选出所有的 ToggleButton:
但是如果想筛选出某个 div 下面的所有 Button 就无法用上述代码了。其实可以使用 dojo.query 代替上述代码:
所有 <div dojoType='dijit.form.ToggleButton' ></div> 的对象最后都会解析成<div class="其它样式... dijitToggleButton"></div>,所以 query 里面直接用 .dijitToggleButton 就可以找到它们。但是 query 返回的是 DOMNode 类型的,想要使用使用 dijit 对象还需要转换,代码如下:
dijit.registry.byClass('dijit.form.ToggleButton');
但是如果想筛选出某个 div 下面的所有 Button 就无法用上述代码了。其实可以使用 dojo.query 代替上述代码:
dojo.query('#divid .dijitToggleButton');
所有 <div dojoType='dijit.form.ToggleButton' ></div> 的对象最后都会解析成<div class="其它样式... dijitToggleButton"></div>,所以 query 里面直接用 .dijitToggleButton 就可以找到它们。但是 query 返回的是 DOMNode 类型的,想要使用使用 dijit 对象还需要转换,代码如下:
dojo.query('#divid .dijitToggleButton').forEach( function (tag) { var widget = dijit.byNode(tag); widget.attr('checked', true); // widget 的其它操作 }
相关文章推荐
- dojo.byId与registry.byId、dijit.byId
- data-dojo-id, dijit/registry.byId() and dojo/dom.byId()
- Caused by: java.lang.ClassCastException: weblogic.xml.jaxp.RegistryXMLReader
- dojo小例子(1):通过动态替换dijit/Dialog的内容,告诉用户表单提交进度(正在提交、成功、失败)
- IE不支持getElementsByClassName最终完美解决方案
- 解决Eclipse下启动tomcat报错:/bin/bootstrap.jar which is referenced by the classpath, does not exist.
- 原生JS实现元素的getElementsByClassName()方法,适用于多个类名
- 掌握 Dojo 工具包,第 5 部分: Dojo 的 UI 组件库 - Dijit
- [Effective C++ --020]宁以pass-by-reference-to-const替换pass-by-value
- Dojo 输入数值 dijit.form.NumberSpinner
- ConterReplaceBehavior.class.php模板内容替换,如__PUBLIC__
- python 爬虫 <class 'socket.error'>: [Errno 104] Connection reset by peer)
- Java Class的热替换 自定义ClassLoader加载.class(java热部署实现 )
- Caused by: java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory
- IE 兼容 getElementsByClassName
- 一步步手动实现热修复(三)-Class文件的替换
- 【转】document.getElementsByClassName的理想实现
- 继承 多态 封装 NSObject类 super关键字 里氏替换 原则 SEL数据 Class
- Effective C++之‘宁以pass-by-reference-to-const替换pass-by-value’
- 解决IE8以下不支持getElementsByClassName的方法