2013-11-28 12 views
5

ich seltsame Situation habe, habe ich diese Zeichenfolgejquery eingefügt HTML als Rohtext gerendert wird

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

, die in ein div gesetzt wird:

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

oder

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

aber in beiden Fällen wird es als ein Rohtext gerendert:

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

statt

lorem 

ipsum 

a 
b 

c 

Warum?

+2

Das ist Zeichenfolge ist HTML codiert. Sie müssen es HTML dekodieren, bevor es als HTML analysiert werden kann. – techfoobar

+0

Wenn Sie dies von einem div und nicht von einer benutzerdefinierten Variable erhalten, müssen Sie $ ('div.desc'). Html ($ ('# element'). Html()); Sie erhalten ein decodiertes HTML-Element – MayTheSchwartzBeWithYou

+0

Versuchen Sie Underscore 'unescape()' -Funktion - http://underscorejs.org/#unescape – techfoobar

Antwort

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

Das wird decodeURI() Funktion die Zeichenfolge entschlüsseln, so wird es Ausgabe <, > usw.

15

Sie können es einfach Trick mit ein wenig jQuery

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

FIDDLE

Verwandte Themen