8

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

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

谢谢。

- 编辑 -

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

4

3 回答 3

8

由于我尝试了很多方法,我认为以下方法是将文本添加到您想要的任何节点的最干净的方法。不需要股票标签,只有纯文本,这将有助于避免潜在的问题

$(document.createTextNode("SomePlainText")).appendTo(p);
于 2013-06-23T06:58:18.320 回答
6

您可以创建一个虚拟元素来保存其结果,.text()然后可以将其附加到您的目标元素:

$('<div/>').text('your <span>html</span> string').appendTo(...);
于 2012-08-14T17:26:36.257 回答
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

于 2012-08-14T17:24:12.233 回答