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

时间:2012-02-23 14:30:50

标签: dojo

我想做这样的事情:

dojo.place(this.message.subject, this.apSubject);

但它在Dojo 1.7中抛出异常(我对Dojo完全不熟悉所以我不知道旧版本是否存在同样的问题)

为了让它工作,我做了:

dojo.place('<span>' + this.message.subject + '</span>', this.apSubject);

看起来Dojo解析了dojo.place的第一个参数,如果没有HTML则抛出异常。

如何在没有跨度的情况下使用它?

1 个答案:

答案 0 :(得分:1)

检查docs,特别是第一个参数收到的描述:

  

dojo.place(node,refNode,pos)

     

节点

     

可以是String或DOM节点。如果它是以“&lt;”开头的字符串,则假定它是一个将创建的HTML片段。否则,它被假定为DOM节点的id。

因此,您可以做的一件事是创建一个包含所需文本的文本节点

dojo.place( document.createTextNode(this.message.subject), this.apSubject)

您可以尝试的另一件事是设置innerHTML而不是使用dojo.place:

this.apSubject.innerHTML = this.message.subject;

顺便说一句,在我看来,dojo.place使用起来非常烦人。但是,由于我不经常进行这种DOM操作,我真的不知道人们更喜欢使用哪种替代方法。