1

複数のフィールドに対してJavaScript関数をループする方法はありますか?

たとえば、次のような5つのテキストボックスがあります。

text1
text2
text3
text4
text5

さて、それらのそれぞれは「フォーカスアウト」で同じことをするので、私はそれらのそれぞれに5つの異なるJS関数を書きたくありません。

$('#text1').focusout( {
.............
    });

$('#text2').focusout( {
.............
    });

$('#text3').focusout( {
.............
    });

$('#text4').focusout( {
.............
    });

$('#text5').focusout( {
.............
    });

ここに5つの異なる関数を記述しないようにするにはどうすればよいですか?

前もって感謝します

4

5 に答える 5

1

共通のクラスを使用します。

<input type="text" class="focusClass" />
<input type="text" class="focusClass" />

そしてこのJS:

$('.focusClass').focusout(function() {
    // ...
});

他のオプションはそれらを一緒に結合することですが、この方法は維持するのがより困難です:

$('#text1, #text2, #text3, #text4, #text5 ').focusout(function() {
    // ...
});
于 2012-07-12T18:28:34.183 に答える
0

さて、これはそれを行うための短い方法です...

$("#text" + [1,2,3,4,5].join(", #text")).focusout(function () {...});

しかし、要素にクラスを追加して、一度に選択できるようにすることはできないのではないかと思います。

例えば...

<input type='text' id="text1' class='textfield' />
<input type='text' id="text2' class='textfield' />
<input type='text' id="text3' class='textfield' />

次に、次のセレクターを使用します...

$(".textfield").focusout(function () {...});

他のオプションは、次のオプションを提供するIDを持つ親コンテナがあることです...

<div id="formfields">
    <input type='text' id="text1' class='textfield' />
    <input type='text' id="text2' class='textfield' />
    <input type='text' id="text3' class='textfield' />
</div>

セレクターは次のようになります...

$("#formfields input[type=text]").focusout(function () {...});

更新フィールドを選択するためのオプションがさらに2つ追加されました

于 2012-07-12T18:33:28.113 に答える
0

セレクターで、操作するすべての要素を選択します。

$('#text1, #text2, #text3, #text4, #text5')
于 2012-07-12T18:28:48.413 に答える
0

すべての要素に同じクラスを配置する意味がない場合は、セレクターをコンマで組み合わせることができます。

$('#text1, #text2, etc...., #text5').focusout( {
.............
});

または、関数を宣言してから、focusout 呼び出しを介して各セレクターにパラメーターとして渡すこともできます。

var onFocusOut = function() {
 do something
};

$('#text1').focusout(onFocusOut);
$('#text2').focusout(onFocusOut);
$('#text3').focusout(onFocusOut);
$('#text4').focusout(onFocusOut);
$('#text5').focusout(onFocusOut);
于 2012-07-12T18:30:25.153 に答える
0

テキスト ボックスの ID を jQuery 関数に渡して、タスクを実行できます。

これを試して:

function myFunction(IDofObject)
{
    $( "#"  + IDofObject  ).doSomething();
}
于 2012-07-12T18:38:33.340 に答える