我习惯使用jQuery的.append()
方法将文本或HTML添加到预先存在的元素的末尾。我目前正在使用jQuery的.text()
来转义可能包含HTML的字符串。不幸的是,似乎没有一个jQuery方法会将.text()
方法的结果附加到元素而不是替换它的内容。
有没有办法将这个转义文本附加到元素而不是替换?或者有更好的方法来转义包含HTML的字符串吗?
感谢。
- 编辑 -
更多上下文:我正在动态构建HTML字符串,因此我需要能够以编程方式添加带有转义内容的多个元素。
答案 0 :(得分:8)
由于我尝试了很多方法,我认为以下方法是将文本添加到所需节点的最简洁方法。 不需要库存标签,只有纯文本,这将有助于避免潜在的问题
$(document.createTextNode("SomePlainText")).appendTo(p);
答案 1 :(得分:5)
您可以创建一个虚拟元素来保存.text()
的结果,然后将其附加到目标元素:
$('<div/>').text('your <span>html</span> string').appendTo(...);
答案 2 :(得分:1)
你可以使用
$(whatever).text($(whatever).text() + whatever_you_want_to_append);
在我的评论中编辑小提琴,试试这个:
for ( /* some looping parameters */ ) {
$('<li></li>') // create an li
.text(stringWithHtml) // pass it the text, as text not html
.appendTo('#thisIsWhatINeed'); // append it where you want it
}