1

私は jQuery を初めて使用し、次の ID のいずれか (1 つ以上) がフォームに表示されるかどうかを確認する小さなコード スニペットを作成しました。

コードは正常に動作しますが、各 ID に割り当てることができるクラスまたは名前をチェックして、より多くの ID を処理できるようにすることで同じことを達成できるかどうか疑問に思っていました。それぞれを個別に言及する必要はありません。

ここの誰かがこれを手伝ってくれて、正しく書く方法を教えてくれませんか。

私のコード(作業中):

if(($('#fail1').is(':visible')) || ($('#fail2').is(':visible')) || ($('#fail3').is(':visible')))
{
    // do something;
}
4

3 に答える 3

3

これはまさにクラスが意図されている種類の動作です - 一連の要素に対してロジックを複製します。jQuery で属性セレクターを使用することは可能idですが、これらは比較的遅く、最後の手段として使用する必要があります。

あなたがする必要があるのは、要素にクラスを与え、次のようにコードを修正することだけです:

if ($('.fail').is(':visible')) {
    alert('at least one element is visible');
}

フィドルの例

于 2013-10-09T12:33:03.313 に答える
2
if($( "[id^='fail']" ).is(':visible') )
{
    // do something;
}

セレクターで始まる属性の参照

于 2013-10-09T12:32:50.950 に答える
0

記録として、jQuery はそれを行う必要はありません。

if (Array.prototype.some.call(document.querySelectorAll('.fail'), function (n) {
      return (window.getComputedStyle(n).display !== 'none');
    })) {
    console.log('at least one element is visible');
}
于 2013-10-09T12:51:07.683 に答える