dojo.place如何在不包围HTML的情况下传递参数



我想做这样的事情:

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操作,我真的不知道人们更喜欢使用什么替代方案。

相关内容

最新更新