使用dojo修改div的文本

时间:2010-12-21 12:27:21

标签: javascript html dojo

我有一个dojo小部件。对于小部件我在A.html中有2个文件A.js和A.html.Now我有类似的东西

<div id ="xyz" dojoAttachpoint="xyz"> </div>  

以上行是widget模板中的一行,它是一个普通的html div

现在在A.js我对服务器进行异步调用。在远程方法的回调函数中,我想修改span xyz的文本。我尝试了3种方法,但没有一种方法正常工作。

1)dojo.byId("xyz").innerHTML = "some text"
2)this.xyz.innerHTML ="some text"

3)

 var myWidget = dijit.byId("pack1.abc.widget.widgetname_id");
            myWidget.xyz.innerHTML ="some text"

上述方法均无效。

当我在A.js的其他函数中使用方法1(非回调函数)时,它工作正常。

1 个答案:

答案 0 :(得分:1)

您无法在其模板中对小部件的ID进行硬编码。 id必须唯一地标识widget类型的实例,因此必须在创建时给出它。

例如,您可以在js:

中执行类似程序操作
var myA = new myWidgets.A({});
myA.startup();
myA.xyz.innerHTML = "some text"

或以html声明:

<div data-dojo-type="myWidgets.A" data-dojo-props="id:'myA'"></div>

和js:

dijit.byId("myA").xyz.innerHTML = "some text";