17

キャリッジリターンのある生のフォーマット済みテキストを保持するためにpreタグを使用しています。ページが最初に表示されたとき、それはうまく見えます。後で、事前データだけを更新したいと思います。jqueryでこれを行う2つの方法を試しました。1つは.html()を使用し、もう1つは.text()を使用します。どちらも機能しますが、.htmlはキャリッジリターンを破棄し、.textはキャリッジリターンをダブルスペースにします。.val()も試しましたが、まったく機能しませんでした。コードは次のとおりです(もちろん、一度に1つのjquery行のみを使用します)。

<pre id="QComment">Initial Text</pre>

しばらくして、

$('#QComment').text(databack);   // or
$('#QComment').html(databack);
4

4 に答える 4

17

これは、*nix ベースのシステムと Windows システムの間でよくある問題です。誰かが jQuery newlinecharacter用の単純な改行検出プラグインを作成しました

だから、あなたができることは次のとおりです。

$('#QComment').text(databack.replace(/\r\n/g,EOL));

これは、すべての Windows スタイルの改行を、データを表示するシステムに適した改行に置き換えることです。

于 2011-02-11T19:25:18.767 に答える
4

私にとって魅力のように機能します:フィドルデモ

多分あなたはいくつかのエンコーディングの問題がありますか?例が役立ちます。

(タグに属性を.val()設定しますが、もちろん効果はありません。)valuepre

于 2011-02-11T19:22:45.523 に答える
1

このインスタンスではわざわざ jQuery を使用せず、単純な古い JavaScript を使用してオブジェクトを設定することをお勧めします。

document.getElementById('QComment').innerHTML = yourHTML;

このような単純なものに jQuery オーバーヘッドを追加する理由はありません。これを複数の要素で使用する場合は、jQuery で問題ありません。

$('#selector, .selector, [selector]').each(function(element, index){
  element.innerHTML = yourHTML;
});
于 2011-02-11T19:17:44.010 に答える
0

標準のDOMメソッドを使用してみてください。おそらく、jQueryはそれ自体で何かを実行します。

$('#QComment')[0].innerHTML = html;
于 2011-02-11T19:14:41.950 に答える