0

10個の入力要素を含むHTMLフォームがあり、2つを除く各入力要素のキープレスで関数を呼び出したい

$(":input").live("keypress", function(e){ 
// something...
});

上記のセレクターは、すべての入力要素に対して機能します。しかし、上記のコードから 2 つの入力要素 (ID またはクラス別) を除外したいと考えています。どうすればいいですか?cssセレクターにexclude/not機能はありますか?

それを行うもう1つの方法は、「keypress_」のようなものによって含まれる入力要素のIDを追加してから使用することです

$("[id^=keypress_]").live("keypress", function(e){ 
// something...
});

しかし、HTML ID を変更したくありません。これはcssセレクターで行うことができますか?

4

2 に答える 2

3

:notセレクターまたは.notjQuery メソッドのいずれかを使用できます。この場合、どちらも同じように機能するはずです。

$(":input:not([id^=keypress_]")
$(":input").not("[id^=keypress_]")

.livejQuery 1.9 で削除されたため、使用しないでください。.on代わりに次の方法でイベント委任を使用します。

$(document).on('keypress', ':input:not([id^=keypress_])', function () {
于 2013-02-08T05:09:01.850 に答える
0

:not()jQuery にはセレクターがあり、.not()メソッドもあります。

これはあなたのために働くかもしれません:

$(":input:not([id^=keypress_])")

またはこれ:

$(":input").not("[id^=keypress_]")

このリンクには詳細情報が含まれている場合があります。 http://api.jquery.com/not-selector/

于 2013-02-08T05:11:30.350 に答える