将HTML编码的字符串附加为HTML,而不是文本

时间:2011-12-08 20:36:43

标签: javascript jquery html append

我正在尝试附加此字符串:

<div> hello </div>

作为HTML节点,但不是附加HTML,而只是附加文本:

<div> hello </div>

如何让jQuery将其作为HTML节点附加,而不仅仅是文本?

如果可能的话,我想要一个适用于嵌套div和文本的解决方案。

3 个答案:

答案 0 :(得分:23)

// This is your string :)
var myString = "&lt;div&gt; hello &lt;/div&gt;";

// This is a way to "htmlDecode" your string... see link below for details.    
myString = $("<div />").html(myString).text();

// This is appending the html code to your div (which you don't have an ID for :P)
$("#TheDivIWantToChange").append(myString);

HTML-encoding lost when attribute read from input field

答案 1 :(得分:0)

您可以使用.createElement('div')创建新的div。然后只需更改新元素的HTML即可。

$(document.createElement('div').html('<p>All new content.</p>'));

要将新元素附加到DOM,请使用element.append().appendTo(element)附加到您选择的元素。

答案 2 :(得分:-2)

也许这有点冗长,但这通常是我处理这样的事情的方式:

var div = $(document.createElement("div"));

div.text(" hello "); //Or div.html(" hello ") if need be...

$("#divtoappendto").append(div);