Email:longsu2010 at yeah dot net@H_502_3@
dojo获取组件对象建议使用dijit/registry模块。这是dojo2.0风格的获取方式。
该模块提供了如下一些方法供获取组件对象,这里需要注意获取的不是dom对象。 @H_502_3@ 1、byId:根据组件的id获取到组件对象。关于id的确定规则" http://blog.csdn.net/tt361/article/details/8745226"中有提到。 @H_502_3@ 2、byNode:根据dom节点获取组件对象,也就是说这个dom节点不是普通的dom节点,dojo对象生成在该dom节点上。 @H_502_3@3、findWidgets:根据dom节点,获取dom节点内部的非嵌套子组件, 返回值为一个数组。如下生成的组件,执行registry.findWidgets(dom.byId("root"))返回的是包含两个form组件的数据,不会包含form内的组件。
<div id="root" data-dojo-type="dijit/layout/ContentPane"> <form id="form1" data-dojo-type="dijit/form/Form"> <input data-dojo-type="dijit/form/TextBox" /> </form> <div> <form data-dojo-type="dijit/form/Form"> <input data-dojo-type="dijit/form/TextBox" /> </form> </div> </div>4、getEnclosingWidget:若知道jquery closest方法,那就好说了,功能类似。给定一个dom对象, 获取该dom祖先组件对象中离该dom节点最近的组件对象。仍以上面的这段html为例,registry.getEnclosingWidget(dom.byId("form1"))将会去到id为root的组件对象。