1

Selectsのグループがあります。私は次のようなことをしようとしています:

それぞれ$("option:selected")$(this).val='equal in all'何かをしている場合。

varしかし、各値を入力してから比較するのか、カウントするのかはわかりません。

多分それはすべてが持っている場合のようなものでなければなりません....

このコードは機能しますが、それをどうするかを見ることができます...

on change関数内にあるため、選択した場合にのみアラートが表示されます

$("option:selected").each(function () {
    alert ($(this).val();)
});

こんな感じです

value = Show Allの場合、both(all)selectが選択されている場合は、何かを実行します。

4

2 に答える 2

3
if ($('option:selected[value="equal in all"]').length > 0){
  // "equal in all" is selected
}

属性equalsselectorを使用してから、プロパティをチェックして、lengthそのセレクターに一致する要素の数を確認できます。

また、最初のセレクターをキャッシュしてからフィルター処理されたバージョンを保存する(および長さを比較する)ことで、「すべてが等しい」と選択されたすべての要素に等しい値の数を比較することもできます。例えば

var selectedOptions = $('option:selected'),
    optionsEqualInAll = selectedOptions.filter('[value="equal in all"]');
if (selectedOptions.length == optionsEqualInAll.length){
  // all selected options have the value "equal in all"
}

それ以外は、質問は少し曖昧であり、あなたが何をしようとしているのかについてもっと明確にできるなら、私は私の答えを更新することができます。

于 2012-07-25T20:05:43.237 に答える
0

ページ上のすべての選択で特定の値が選択されている場合にのみ、コードを実行したいとします。

その場合は、これを試してください。

var $selects = $("select");
$filteredSelects = $selects.filter(function(el){
    return $(el).val() == 'equal in all';
});
if($selects.length == $filteredSelects.length){
    //Do Something
}
于 2012-07-25T20:08:32.640 に答える