2011-12-08 27 views
10

Tôi đang cố gắng để nối thêm chuỗi này:phụ HTML mã hóa chuỗi dưới dạng HTML, không phải là văn bản

<div> hello </div> 

như một nút HTML, nhưng thay vì phụ HTML nó chỉ gắn thêm các văn bản:

<div> hello </div> 

Làm cách nào để jQuery thêm phần này dưới dạng nút HTML, không chỉ văn bản?

Tôi muốn một giải pháp hoạt động cả cho divs lồng nhau VÀ văn bản, nếu có thể.

+0

Bạn đang sử dụng mã nào? – Quentin

+2

Đó là bởi vì nó đã được

hello
Hãy xem http://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript –

Trả lời

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

gì sẽ xảy ra nếu có sự phức tạp divs lồng bên trong bên ngoài div thay vì chỉ là văn bản "hello"? – zakdances

+2

Nó sẽ không khác nhau. –

+0

Có cách nào để đăng ký html mới dưới dạng nút jquery để nó có thể được tham chiếu như vậy không (như với $ ('# newDiv')? – zakdances

-2

Có lẽ đây là một chút dài dòng, nhưng điều này thường là cách tôi xử lý những thứ như thế:

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

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

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

Bạn có thể tạo một div mới với .createElement('div'). Sau đó, chỉ cần thay đổi HTML của phần tử mới.

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

Để đính kèm các yếu tố mới vào DOM hoặc sử dụng element.append() hoặc .appendTo(element) gắn liền với các yếu tố của bạn lựa chọn.

Các vấn đề liên quan