2010-07-25 14 views
7

Ho un elemento pre con un codice html al suo interno. il codice contiene caratteri speciali, come <, in modo che non si rompa la pagina.Javascript/jQuery - conversione di caratteri html speciali

Quindi ho una funzione javascript che ottiene il contenuto di questo elemento pre, lo evidenzia (con codemirror) e sostituisce il contenuto dell'elemento con il testo evidenziato.

Sto usando $("pre").append(...); per fare questo. Il problema è che dopo l'evidenziazione, sullo schermo vedo &lt; anziché <. Come posso convertire questi caratteri in html?

+1

quale metodo viene utilizzato per recuperare l'html? – David

+0

il contenuto del pre iniziale? Lo faccio con 'var content = code.html();' – Alex

risposta

10

Si dovrebbe usare il metodo .text() per prendere il codice dal pre. In questo modo stai dando i simboli codificati all'evidenziatore del codice.

+0

grazie, che funziona – Alex

8

Non so cosa succede (e perché succede) al vostro html, ma è possibile utilizzare jQuerys .text() e .html() per decodificare/entitiys codifica HTML come:

HTML

<div id="test">&lt;&lt;</div> 

jQuery :

var t = $('#test'); 
t.html(t.text()); // will print "<<" 

esempio: http://www.jsfiddle.net/fphw3

aggiornamento

Dal momento che lei ha detto che si utilizza .html() per leggere il valore del vostro elemento, una chiamata a .text() invece dovrebbe risolvere il problema.