2011-08-02 9 views
3

は、次のHTMLページフラグメントを考えてみましょう:jQueryのHTML divからtextareaに改行文字をコピーするには?

<div id='myDiv'> 
    Line 1.<br /> 
    Line 2<br /> 
    These are &ltspecial&gt; characters &amp; must be escaped [email protected]@&gt;&lt;&gt; 
</div> 
<input type='button' value='click' id='myButton' /> 
<textarea id='myTextArea'></textarea> 

<script> 
    $(document).ready(function() { 
     $('#myButton').click(function() { 
      var text = $('#myDiv').text(); 
      $('#myTextArea').val(text); 
     }); 
    }); 
</script> 

まず、ID myDivとdiv要素があります。これには、実稼働中のWebサイトで実行時にSQLデータベースから取得されるものに類似したテキストが含まれています。

次に、ボタンとテキストエリアがあります。ボタンをクリックすると、myDivのテキストがテキストエリアに表示されます。

ただし、私が指定したコードを使用すると、改行は取り除かれます。エスケープする特殊文字は絶対に交渉可能ではないことを考慮して、私はこれについて何ができますか?

+0

テキストエリアのユーザー入力からの改行は、常に私にとっては問題ではないことを付け加えておきます。それは問題であるテキストエリアのテキストを設定しています。これまで私が見つけた唯一の解決策は、テキストをシリアル化された文字列に保存することですが、それは実際にKLUDGEのように感じます。 –

+0

Chromeで私のために働いています。 http://jsfiddle.net/jasongennaro/8P8fH/ –

答えて

0

あなたのコードは、FirefoxとChromeの両方で私のために素晴らしい作品:http://jsfiddle.net/jYjRc/

をしかし、あなたは、あなたがやりたい改行文字で<br> Sを置き換えるものではありませんクライアントを持っている場合。

編集:IE7でテストされ、コードが破損しています。だから私は、私の提案でバイオリンを更新:

<div id='myDiv'><pre> 
Line 1. 
Line 2 
These are &ltspecial&gt; characters &amp; must be escaped [email protected]@&gt;&lt;&gt; 
</pre></div> 

をそしてあなたもIEで、<pre>タグで指定するようになりました.text()は正確にテキストを返します。http://jsfiddle.net/jYjRc/1/

+0

それは面白いです。私たちはIE専用のショップだから、Firefoxで自分のコードをテストすることはめったにありません。 –

+0

残念ながら、 '
'を改行で置き換えることは、 '$( '#' –

+0

更新が追加されました。もう一度チェックしてください:) – imsky

0

はそうのようなあなたのHTMLを行います。

関連する問題