-1

私はjqueryの操作に慣れていないので、助けていただければ幸いです。私はこの関数を作成しましたが、機能させることができません。何が問題なのか誰か教えてください。

$(function() {
   $('#replace_button').onclick(function() {
     $('#box_txt').val().replace(/\t/g, '[TAB]');
     $('#box_txt').val().replace(/\n/g, '[BREAK]');
   });
});

それに付随するhtmlは

<textarea name='box_txt' id='box_txt' rows='6' cols='50'></textarea>
  <br>
  <input type='button' id='replace_button' value='Replace'>

ボタンが押されたときに、すべてのタブを [TAB] に、すべての改行を [BREAK] に置き換えたいだけです。

どうもありがとう。

4

2 に答える 2

4

val値への一種のポインタではなく、文字列を返します。replace渡された文字列は変更されませんが (JavaScript では文字列は不変です)、新しい文字列が返されます。

あなたは使用することができます

var field = $('#box_txt'), s = field.val();
s = s.replace(/\t/g, '[TAB]').replace(/\n/g, '[BREAK]');
field.val(s);

デモンストレーション

于 2013-05-14T14:06:21.487 に答える
0

次のようになります。

$(function() {
       $('#replace_button').onclick(function() {
         $('#box_txt').val($('#box_txt').val().replace(/\t/g, '[TAB]'));
         $('#box_txt').val($('#box_txt').val().replace(/\n/g, '[BREAK]'));
       });
    });

値を取得して操作しますが、テキストエリアに戻すことはありません:-)

于 2013-05-14T14:16:22.093 に答える