我想做这样的事情:
dojo.place(this.message.subject, this.apSubject);
但它在Dojo1.7中抛出了异常(我对Dojo完全陌生,所以我不知道在旧版本下是否也有同样的问题)
为了让它发挥作用,我做了:
dojo.place('<span>' + this.message.subject + '</span>', this.apSubject);
看起来Dojo解析dojo.place
的第一个参数,如果没有HTML,就会抛出异常。
如何在没有跨距的情况下使用它?
检查文档,特别是第一个参数接收到的描述:
dojo.place(node,refNode,pos)
节点
可以是String或DOM节点。如果它是一个以"<"开头的字符串,则假定它是将创建的HTML片段。否则,它被假定为DOM节点的id。
因此,你可以做的一件事是用你想要的文本创建一个文本节点
dojo.place( document.createTextNode(this.message.subject), this.apSubject)
您可以尝试的另一件事是设置innerHTML,而不是使用dojo.place:
this.apSubject.innerHTML = this.message.subject;
<小时 />顺便说一句,在我看来,dojo.place的使用很正常,有点烦人。然而,由于我不经常进行这种DOM操作,我真的不知道人们更喜欢使用什么替代方案。