我有一个 dojo 小部件。对于小部件,我有 2 个文件 A.js 和 A.html。现在在 A.html 里面我有类似的东西
<div id ="xyz" dojoAttachpoint="xyz"> </div>
上面一行是小部件模板中的一行,它是一个普通的 html div
现在在 A.js 中,我对服务器进行异步调用。在远程方法的回调函数中,我想修改 span xyz 的文本。我尝试了以下 3 种方法,但都没有用。
1) dojo.byId("xyz").innerHTML = "some text"
2) this.xyz.innerHTML ="一些文本"
3)
var myWidget = dijit.byId("pack1.abc.widget.widgetname_id");
myWidget.xyz.innerHTML ="some text"
以上方法均无效。
当我在 A.js 的其他函数(非回调函数)中使用方法 1 时,它工作正常。
最佳答案
您不能在模板中硬编码小部件的 ID。 id 必须唯一地标识一个 widget-type 的实例,所以它必须在创建时给出。
例如,您可以在 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";
关于javascript - 使用 dojo 修改 div 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499221/