現在、うまく機能する以下のコードを使用しています。
$("#topperAtBaseLevel:visible, #lowerAtBaseLevel:visible, #midAtBaseLevel").hide();
最適化されたコードはありますか?(私は同じクラスを使用することはできません)私は:visible
正しく使用する方法を意味しますか?
現在、うまく機能する以下のコードを使用しています。
$("#topperAtBaseLevel:visible, #lowerAtBaseLevel:visible, #midAtBaseLevel").hide();
最適化されたコードはありますか?(私は同じクラスを使用することはできません)私は:visible
正しく使用する方法を意味しますか?
さて、私が考えることができるのは、次のとおりです。
$('[id$="AtBaseLevel"]:visible').hide();
これは、IDが。で終わるすべての要素と一致しAtBaseLevel
ます。IDルックアップはほぼ同じくらい高速であるため、短いということは高速という意味ではありません。属性ベースのセレクターはそれほど最適化されていません。
あなたはこのようにそれを行うことができます:
$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").filter(":visible").hide();
ただし、これによりすべてが非表示になり、非表示の要素を呼び出すこと.hide()
は問題なく、そこには何も問題がないため、次のようになります。
$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").hide();
そのコードは完璧に思えます。:visible を正しく使用しています。
正確にどのように機能するかを知りたい場合は、 jQuery :visible セレクターのヘルプ ページを参照できますが、簡単に言えば、可視要素を選択します =)
それがあなたが目指していることを達成する方法です。セレクターを正しく効率的に使用しています。
非表示にする必要があるタグの ID の配列を維持し、セレクターを動的に構築して ID で検索すると、少し速くなる可能性があります。(セレクターが長くなる可能性がありますが、これは高速です。ID による選択は非常に高速です。)
しかし、最適化は必要ありませんね。私たちは、ライトニング・ファストからダブル・ライトニング・ファストに移行することについて話している. 超大型の jQuery プロは、あなたが行ったことを実行するだけです。