2011-12-08 15 views
10

Próbuję dołączyć ten ciąg:Dołączanie HTML zakodowany ciąg w formacie HTML, a nie jako tekst

<div> hello </div> 

jako węzła HTML, ale zamiast dołączania HTML to po prostu dodaje się tekst:

<div> hello </div> 

W jaki sposób dodać jQuery jako węzeł HTML, a nie tylko tekst?

Chciałbym rozwiązanie, które działa zarówno dla zagnieżdżonych elementów div i tekstu, jeśli to możliwe.

+0

Jakiego kodu używasz? – Quentin

+2

To dlatego, że to musi być

hello
Spójrz na http://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript –

Odpowiedz

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

Co się dzieje, gdy nie ma złożonych zagnieżdżonych div wewnątrz zewnętrznej div zamiast tylko tekstu "hello"? – zakdances

+2

Nie inaczej. –

+0

Czy istnieje sposób na zarejestrowanie nowego html jako węzła jquery, aby można było do niego odwoływać się (np. Za pomocą $ ('# newDiv')? – zakdances

-2

Może to nieco rozwlekły, ale zazwyczaj jest to jak sobie radzić w takich rzeczy:

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

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

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

Można utworzyć nowy div z .createElement('div'). Następnie zmień kod HTML nowego elementu.

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

Aby założyć nowy element do DOM użyć element.append() lub .appendTo(element) dodać do istniejącego elementu wyboru.

Powiązane problemy