2011-12-08 14 views
10

Sto cercando di aggiungere questa stringa:Aggiunta dei HTML-encoded stringa come HTML, non come testo

<div> hello </div> 

come un nodo HTML, ma invece di aggiungere HTML solo aggiunge il testo:

<div> hello </div> 

Come faccio a aggiungere jQuery come nodo HTML, non solo testo?

Mi piacerebbe una soluzione che funzioni sia per div nidificati che per testo, se possibile.

+0

Che codice stai usando? – Quentin

+2

Questo è perché deve essere

hello
Date un'occhiata a http://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript –

risposta

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

Cosa succede se non c'è complessi div annidati all'interno del esterna div invece del solo testo "ciao"? – zakdances

+2

Non sarebbe diverso. –

+0

C'è un modo per registrare il nuovo html come un nodo jquery in modo che possa essere referenziato come tale (come con $ ('# newDiv')? – zakdances

-2

forse questo è un po 'prolisso, ma questo è di solito come gestire cose del genere:

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

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

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

È possibile creare un nuovo div con .createElement('div'). Quindi cambia semplicemente il codice HTML del nuovo elemento.

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

Per collegare il nuovo elemento al DOM usare sia element.append() o .appendTo(element) da aggiungere al vostro elemento di scelta.

Problemi correlati