9

これは好奇心の問題です。次の場合:

$('.selector1, .selector2').doSomething()

jQueryはDOMを完全に2回トラバースして、各セレクターに一致するオブジェクトの各セットを取得しますか、それともDOMの1回のトラバースですべての要素を検索しますか?

4

2 に答える 2

1

それは本当にブラウザに依存します。新しいブラウザーでは、すべての DOM クエリに document.querySelectorAll を使用します (内部では、クラスに対して document.getElementsByClassName を呼び出します)。これをサポートしていない古いブラウザでは、それを独自に判断する必要があり、明らかに遅くなります。

一般に、最初に ID で検索する (または少なくとも範囲を狭める) ことをお勧めします。クラスとタグの名前は、スピードの次です。基本的には、ネイティブにサポートされている DOM 操作が最適です。

于 2010-01-26T17:59:15.357 に答える
1

以下を使用して、ネイティブブラウザ機能を使用してこれを見つけると思います。

document.getElementsByClassName()
于 2010-01-26T15:16:29.850 に答える