2011-12-08 93 views
10

我想追加這個字符串:追加HTML編碼字符串作爲HTML,而不是文本

<div> hello </div> 

爲HTML節點,但不是追加HTML它只是追加文本:

<div> hello </div> 

我該如何讓jQuery將這個附加爲HTML節點,而不僅僅是文本?

我想要一個適用於嵌套div和文本的解決方案,如果可能的話。

+0

你使用什麼代碼? – Quentin

+2

這是因爲它必須是

hello
看看http://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript –

回答

19
// 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

+0

如果有外部在複雜的嵌套的div會發生什麼而不是隻是文字「你好」? – zakdances

+2

這將是沒有什麼不同。 –

+0

有沒有辦法將新的html註冊爲jquery節點,以便它可以被引用(就像使用$('#newDiv')? – zakdances

-2

也許這是一個有點冗長,但是這通常是我如何處理這樣的東西:

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

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

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

您可以創建.createElement('div')一個新的div。然後簡單地更改新元素的HTML。

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

要將新元素附加到DOM或者使用element.append().appendTo(element)追加到您選擇的元素。

相關問題