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


Jquery html() メソッドがブラウザーの innerHTML プロパティを使用するため、IE8 でこの問題が発生します。一部のブラウザーは、元のドキュメントの 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 に答える