1

div などのコンテナー内のすべての要素を選択したいと思います。コンテナー内の要素の種類は問題ではなく、可能な限り柔軟に保つために、クラスが割り当てられていない要素を選択できる必要があります。jQuery プラグインとして、このすばやく作成された「ロゴ ティッカー」を作成したいと思います。

http://apkunden.de/dev/index.html

目標は、imgs だけでなく、任意の html 要素でこれを使用できるようにすることです。これを達成するための非常に一般的な方法は、関連する要素に割り当てられたクラスを使用することです。しかし、結局のところ、私は怠け者であり、これらすべてのクラスを割り当てたくありません:D.

jQuery にすべてのセレクター ("*") があることを知ったので、次のようなことを考えました。

    $("#container").find("*");

しかし、jQuery API ページには、すべてのセレクターが非常に遅いという警告があります。問題は、("*") セレクターを使用することがまったく意味があるかどうかです。それがパフォーマンスに大きな影響を与えるなら、私はむしろ怠け者ではありません...

これに関する経験やアドバイスを持っている人はいますか?

どうも。

4

3 に答える 3

1

JQuery仕様から(リンク):

.children( [セレクター] )

説明: 一致した要素のセット内の各要素の子を取得します。オプションでセレクターによってフィルター処理されます。

だからあなたの場合:

 $("#container").children();
于 2012-05-10T09:20:28.640 に答える
0

同じドキュメントから(私のものを強調してください):

注意: all (またはユニバーサル) セレクターは、単独で使用する場合を除いて、非常に低速です。

あなたの要件$(this).find('* > p')$(this).find('*')get all elements

編集:

私のコメントによると、children()ドキュメントから:

.children() メソッドは .find() とは異なり、.children() は DOM ツリーを 1 レベル下に移動するだけですが、.find() は複数のレベルを下に移動して子孫要素 (孫など) も選択できます。

于 2012-05-10T09:20:35.170 に答える
0

あなたはただ使うことができます

    $("#container").children() 

jquery のメソッドで、結果をループしますか? 子要素にも子要素が含まれているかどうかは重要ですか?

速度に関しては、すべてのセレクターを使用すると、結果の数に確実に基づいているため、他のセレクターよりも遅い場合は驚くでしょう。(間違っているかもしれませんが)

于 2012-05-10T09:21:50.733 に答える