2013-11-28 53 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

試試Underscore的'unescape()'函數 - 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