jQuery で最も速い children() または find() は何ですか? 質問する

jQuery で最も速い children() または find() は何ですか? 質問する

jQuery で子ノードを選択するには、children() だけでなく find() も使用できます。

例えば:

$(this).children('.foo');

同じ結果になります:

$(this).find('.foo');

さて、どのオプションが最も速く、または好ましいのでしょうか。また、その理由は何でしょうか。

ベストアンサー1

children()ノードの直下の子のみを参照しますが、find()はノードの下の DOM 全体をトラバースするため、同等の実装であればより高速になるchildren() はずです。ただし、はネイティブfind()ブラウザ メソッドを使用するのに対し、はブラウザで解釈されるJavaScriptを使用します。私の実験では、一般的なケースではパフォーマンスに大きな違いはありません。children()

どちらを使用するかは、DOM 内でこのノードの直下の子孫のみを考慮するか、このノードの下にあるすべてのノードを考慮するかによって異なります。つまり、メソッドの速度ではなく、必要な結果に基づいて適切なメソッドを選択します。パフォーマンスが本当に問題である場合は、最適なソリューションを見つけるために実験し、それを使用します (または、ここにある他の回答のベンチマークを参照してください)。

おすすめ記事