0

このコードを最小限に抑えたいと思います:

$('#thistext0').keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
 });
$('#thistext1').keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
 });
$('#thistext2').keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
 });
$('#thistext3').keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
 });

JSでこのようなことは可能ですか?

$('#thistext[i]').keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
 });

もしそうなら、どのように?

編集: PHPでレコードをループする方法でIDを使用する必要があるため、クラスを使用できません

4

3 に答える 3

6

startswith セレクターを使用することも、共通のクラス名を使用することもできます。

$("[id^='thistext']").keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
 });

startwith セレクターを使用している間、安全のためにコンテキストとして親コンテナーを提供します。$("[id^='thistext']", 'container')

また、これは属性セレクターであるため、ネイティブ ID またはクラス セレクターよりも遅くなることを覚えておいてください。

セレクターで始まる属性

したがって、これらすべてのテキストボックスに共通のクラス名を提供し、classSelector を使用して選択することが理想的だと思います。

于 2013-06-24T18:32:31.070 に答える
3

いいえ、しかしこれは可能です:

$('#thistext0, #thistext1, #thistext2, #thistext3').keyup(function(e){
      var keyed = $(this).val();
      $("#target").html(keyed);
});

もちろん、セレクター文字列はループで作成できます。または、入力フィールドにクラスを追加して、クラスごとに選択します。

于 2013-06-24T18:31:26.473 に答える