2010-07-25 167 views
7

我有一個pre元素,其中包含一些html代碼。 該代碼中有特殊字符,如<,因此它不會中斷頁面​​。Javascript/jQuery - 轉換特殊的html字符

然後我有一個JavaScript函數,它獲取此pre元素的內容,將其高亮顯示(使用codemirror),並用高亮顯示的文本替換元素內容。

我正在使用$("pre").append(...);來做到這一點。 問題是,突出顯示後,在屏幕上我看到&lt;而不是<。 如何將這些字符轉換回html?

+1

用什麼方法獲取html? – David 2010-07-25 18:09:14

+0

初始預置的內容?我用'var content = code.html();' – Alex 2010-07-25 18:11:45

回答

10

您應該使用.text()方法從pre中獲取代碼。這樣您就不會將編碼的符號賦予代碼高亮顯示。

+0

謝謝,這是有效的 – Alex 2010-07-25 18:17:28

8

我不知道會發生什麼(和爲什麼它會發生)到你的HTML,但你可以使用jQuerys .text().html()解碼/編碼的HTML entitiys像:

HTML

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

的jQuery :

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

例如:http://www.jsfiddle.net/fphw3

更新

既然你提到你使用.html()讀你的元素的值,以.text()一個電話,而不是應該解決您的問題。