dojo.byId()有效,但dijit.byId()没有

时间:2011-04-20 00:00:54

标签: dojo

我有一个标识为appointment_stylist_id的选择字段。出于某种原因,第一个返回我的元素,但第二个返回undefined

  console.log(dojo.byId('appointment_stylist_id'));
  console.log(dijit.byId('appointment_stylist_id'));

知道为什么吗?

2 个答案:

答案 0 :(得分:15)

这是因为dojo.byId做你想要的(找到具有特定ID的DOM元素),而dijit.byId不这样做。

  

dijit.byId是一个按指定名称(id)查找特定小部件的功能。此函数类似于dojo.byId,但dojo.byId返回DOMNodes,dijit.byId返回一个JavaScript对象,该对象是小部件的实例。

     

...

     

dijit.byIddojo.byId经常混淆,特别是首次使用者。当您希望直接处理窗口小部件的JavaScript对象实例并访问该窗口小部件的功能时,应使用此函数。

http://dojotoolkit.org/reference-guide/dijit/byId.html

另见

What the difference between dojo.byId and dijit.byId?

答案 1 :(得分:1)

dojo.byId("appointment_stylist_id");

返回元素。

dijit.byId("appointment_stylist_id");

返回小部件。

使用dijit.byId也可以获得元素的值,如:

dijit.byId("appointment_stylist_id").getValue();