1 が 2 より速いのはなぜですか?
$('#p1').find('span');
$('#p1 span');
1 が 2 より速いのはなぜですか?
$('#p1').find('span');
$('#p1 span');
jQuery 1.4では、セレクターがセレクターであるかどうかがチェックされますid
(あなたのような#p1
)。
document.getElementId(...)
が呼び出され、結果が jQuery ユーティリティ オブジェクトにラップされて返されます。あなたの場合、おそらく #1 は #2 よりも高速ですが、反復回数と検索する要素の数によっては、他のシナリオでは #2 が #1 よりも高速になる可能性があります。
例: に 3 つspan
の要素があり、他の要素#p1
がない場合、find はそれほど多くの CSS マッチングを行おうとしないため、#1 は #2 よりも高速になると思います。しかし、1000 個span
の要素と 2000 個の他の要素#p1
がある場合、すべての要素を 2 回反復する必要がないため、#2 の方が高速であるに違いありません。