2

現在、うまく機能する以下のコードを使用しています。

$("#topperAtBaseLevel:visible, #lowerAtBaseLevel:visible, #midAtBaseLevel").hide();

最適化されたコードはありますか?(私は同じクラスを使用することはできません)私は:visible正しく使用する方法を意味しますか?

4

4 に答える 4

0

さて、私が考えることができるのは、次のとおりです。

$('[id$="AtBaseLevel"]:visible').hide();

これは、IDが。で終わるすべての要素と一致しAtBaseLevelます。IDルックアップはほぼ同じくらい高速であるため、短いということは高速という意味ではありません。属性ベースのセレクターはそれほど最適化されていません。

于 2010-04-02T12:38:31.620 に答える
0

あなたはこのようにそれを行うことができます:

$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").filter(":visible").hide();

ただし、これによりすべてが非表示になり、非表示の要素を呼び出すこと.hide()は問題なく、そこには何も問題がないため、次のようになります。

$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").hide();
于 2010-04-02T12:44:26.857 に答える
0

そのコードは完璧に思えます。:visible を正しく使用しています。

正確にどのように機能するかを知りたい場合は、 jQuery :visible セレクターのヘルプ ページを参照できますが、簡単に言えば、可視要素を選択します =)

于 2010-04-02T12:30:44.380 に答える
0

それがあなたが目指していることを達成する方法です。セレクターを正しく効率的に使用しています。

非表示にする必要があるタグの ID の配列を維持し、セレクターを動的に構築して ID で検索すると、少し速くなる可能性があります(セレクターが長くなる可能性がありますが、これは高速です。ID による選択は非常に高速です。)

しかし、最適化は必要ありませんね。私たちは、ライトニング・ファストからダブル・ライトニング・ファストに移行することについて話している. 超大型の jQuery プロは、あなたが行ったことを実行するだけです。

于 2010-04-02T12:32:35.233 に答える