3

我有一些pre用换行符格式化的元素,如下所示:

<pre id="code1">Some
formatted
code</pre>

<pre id="code2">Some more
formatted
code</pre>

如果我将以下内容应用于第一个pre元素:

$('#code1').html($('#code1').html());

在 IE8 中,这会导致换行符丢失,结果如下:

Some formatted code

Some more
formatted
code

在 Chrome 中,上面的 jQuery 没有你所期望的效果。

示例:http: //jsfiddle.net/6mkAa/

有谁知道是什么导致了 IE 中这种奇怪的行为?我想编辑我的pre元素的内容,而不会在此过程中丢失格式。

4

2 回答 2

0

IE8 出现此问题,因为
Jquery html() 方法使用浏览器的 innerHTML 属性。某些浏览器可能不会返回与原始文档中的 HTML 源完全相同的 HTML。例如,如果属性值仅包含字母数字字符,Internet Explorer 有时会省略属性值的引号。

你可以这样使用

$("#code1").innerHTML($("#code1").html())
于 2012-08-23T07:16:11.477 回答
0

你可以试试.text()

http://jsfiddle.net/6mkAa/6/

$('#code1').text($('#code1').text());
于 2012-08-23T06:04:39.320 回答