2013-11-28 10 views
5

devo situazione strana, ho quella stringajquery inserita HTML è reso come un testo grezzo

lorem<br/><br/>ipsum<br/><br/>a<br/>b<br/><br/>c 

che viene messo in un div:

$('div.desc').html(that_string); 

o

$('div.desc').html($.parseHTML(that_string)); 

ma in entrambi i casi viene visualizzato come testo non elaborato:

lorem<br/><br/>ipsum<br/><br/>a<br/>b<br/><br/>c 

invece di

lorem 

ipsum 

a 
b 

c 

Perché?

+2

Quello stringa è codificato in HTML. Dovrai decodificarlo in HTML, prima che possa essere analizzato come HTML. – techfoobar

+0

Se stai ricevendo questo da un div e non da una variabile personalizzata, devi fare $ ('div.desc'). Html ($ ('# elemento'). Html()); Si ottiene un elemento HTML decodificato – MayTheSchwartzBeWithYou

+0

Prova la funzione 'unescape()' di Underscore - http://underscorejs.org/#unescape – techfoobar

risposta

9
$('div.desc').html(decodeURI(that_string)); 
//OR 
$('div.desc').html($.parseHTML(decodeURI(that_string))); 

La funzione decodeURI() decodifica la stringa in modo che sarà in uscita <, > ecc

15

Si può solo ingannare con un po 'di jQuery parsing

$('div.desc').html($('<div />').html(that_string).text()); 

FIDDLE

Problemi correlati