2013-11-28 2 views
5

У меня есть странная ситуация, у меня есть эта строкаJQuery вставить HTML визуализируется в качестве исходного текста

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

, которая помещается в DIV:

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

или

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

но в обоих случаях он представляется в виде необработанного текста:

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

вместо

lorem 

ipsum 

a 
b 

c 

Почему?

+2

Вот строка кодируется HTML. Вам придется декодировать его HTML, прежде чем его можно проанализировать как HTML. – techfoobar

+0

Если вы получаете это из div, а не из пользовательской переменной, вы должны сделать $ ('div.desc'). Html ($ ('# element'). Html()); Вы получаете декодированный HTML-элемент – MayTheSchwartzBeWithYou

+0

Попробуйте функцию unescape() '' Underscore '' - http://underscorejs.org/#unescape – techfoobar

ответ

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

decodeURI() функция декодирует строку, так что будет выводить <, > и т.д.

15

Вы можете просто обмануть его немного Jquery разборе

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

FIDDLE

Смежные вопросы