小姜哥的微信

dojo获取组件(组件对象)的方法总结

dojo获取组件对象建议使用dijit/registry模块。这是dojo2.0风格的获取方式。

该模块提供了如下一些方法供获取组件对象,这里需要注意获取的不是dom对象。

1、byId:根据组件的id获取到组件对象。关于id的确定规则"http://blog.csdn.net/tt361/article/details/8745226"中有提到。

2、byNode:根据dom节点获取组件对象,也就是说这个dom节点不是普通的dom节点,dojo对象生成在该dom节点上。

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的组件对象。

推荐文章

回到顶部