附加HTML转义文本:jQuery

时间:2012-08-14 17:22:01

标签: javascript jquery html dom escaping

我习惯使用jQuery的.append()方法将文本或HTML添加到预先存在的元素的末尾。我目前正在使用jQuery的.text()来转义可能包含HTML的字符串。不幸的是,似乎没有一个jQuery方法会将.text()方法的结果附加到元素而不是替换它的内容。

有没有办法将这个转义文本附加到元素而不是替换?或者有更好的方法来转义包含HTML的字符串吗?

感谢。

- 编辑 -

更多上下文:我正在动态构建HTML字符串,因此我需要能够以编程方式添加带有转义内容的多个元素。

3 个答案:

答案 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
}

jsFiddle