1

第一に、これをご覧になったすべての人に感謝し、これに答えてくださった方々に特に感謝します。

今日、私はこれをテストしましたが、機能していません。そのため、このコードをどのようにすべきかを知りたいだけです。1行に複数の「OR」

$("input[name='ABC']or[name='DEF']or[name='GHI']or[name='JKL']").click(function (){ 
    //do something
});

またはそれのために他に置くことさえ...

$("input[name='ABC'][name='DEF'][name='GHI'][name='JKL']").click(function (){ 
    //do something
}else{
    //do something else
});

私は両方のコードが無効であることを知っているので、そのようにコーディングすることは可能ですか?これまでのところ、すべてを1つずつコーディングしているので、コーディングは非常に長くなります。

4

4 に答える 4

2

jhonraymos が推奨するように、コンマを使用して要素を区切ります。

これらすべての要素のクラスを追加することをお勧めします

<input type="text" name="ABC" class="special" />
<input type="text" name="DEF" class="special" />
<input type="text" name="GHI" class="special" />
<input type="button" name="JKL" class="special" />
...

その後

$('input.special').click(function() {
    // do something
});
于 2012-10-14T15:21:41.303 に答える
1

複数のセレクターhttp://api.jquery.com/multiple-selector/を使用できます

于 2012-10-14T15:16:12.880 に答える
1

単に使用するか、,それらの間に配置することができます

これを使って

$("input[name='ABC'],[name='DEF'],[name='GHI'],[name='JKL']").click(function (){ 
//do something
});
于 2012-10-14T15:16:18.143 に答える
0

よりカスタマイズされたソリューションが必要な場合は、次のようなものを使用できます。

$("input[name]").filter(function() { return this.getAttribute('name').search(/^(ABC|DEF)$/) > 0;});

次に、必要に応じて関数をラップして抽象化し、クライアントコードを読みやすくすることができます。

私は次のようなものを提案します:

var attrPattern = function(attrName, pattern) {
  return function() {
    return this.getAttribute(attrName).search(pattern) > 0;
  }
}

その後、あなたはそれを呼び出すことができます

$("input[name"]).filter(attrPattern("name", pattern));
于 2012-10-14T15:28:08.480 に答える