dojo.byId 和 dijit.byId 有啥区别?

Posted

技术标签:

【中文标题】dojo.byId 和 dijit.byId 有啥区别?【英文标题】:What the difference between dojo.byId and dijit.byId?dojo.byId 和 dijit.byId 有什么区别? 【发布时间】:2010-11-11 20:45:51 【问题描述】:

每次尝试获取页面中元素的值时,我都会遇到未定义的错误:我已尝试dijit.byId('myid').innerhtml('loading...');

我收到一个错误 但是当我使用 jquery 做同样的事情时,它可以工作$­('#myid').html('loading ...')

在道场中这个$('#myid').html() 的等价物是什么? 感谢您的任何建议

【问题讨论】:

【参考方案1】:

dijit.byId 通过某个 id 返回一个 dijit 对象。

dojo.byId 等同于$()。要获取/设置它的 HTML,请使用

dojo.byId("my_id").innerHTML
dojo.byId("my_id").innerHTML = some_text`

请注意,dojo.byId 只是 document.getElementById 的包装,因此您可以使用所有基本功能。

【讨论】:

DojoCampus 有一篇关于 jsId、dijit.byId() 和 dojo.byId() 的详细文章:dojocampus.org/content/2008/05/06/jsid-dijitbyid-and-dojobyid 应该限定 dojo.byId 相当于 $() 大概在 Prototype 中; jQuery 的$() 更接近dojo.query。我也写过关于 dojo base 和 Dijit 之间的一些常见混淆点,也许它会有所帮助:kennethfranqueiro.com/2010/06/of-dijits-and-dom-nodes【参考方案2】:
dijit.byId("my_id") ----> returns the widget associated with the domNode.
dojo.byId("my_id") -----> returns the domNode itself.

使用 dijit 访问 domNode:

dijit.byId("my_id").domNode.innerHTML

【讨论】:

以上是关于dojo.byId 和 dijit.byId 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

dijit.byId 不起作用(不是函数吗?)

使用 dijit.byId w dojox.mobile 小部件

Dojo: TypeError: dojo.byId(...).attr is not a function

dojo中的选择器

如何禁用“dijit.form.FilteringSelect”小部件?

destroy()、destroyRecursive(true)、destroyDescendants() 的区别