2010-07-25 128 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()一个电话,而不是应该解决您的问题。