[解決済み】jQueryで最も速いchildren()またはfind()とは何ですか?
2022-03-26 09:53:53
質問
jQueryで子ノードを選択するには、children()を使用することもできますが、find()を使用することもできます。
例えば
$(this).children('.foo');
と同じ結果になる。
$(this).find('.foo');
さて、どのオプションが最も速いか、あるいは好ましいか、その理由は?
解決方法は?
children()
はノードの直下の子だけを見るのに対し
find()
はノードの下の DOM 全体を走査するので
children()
が必要です。
は、同等の実装であれば、より高速になります。しかし
find()
は
ネイティブ
ブラウザのメソッドを使用し、一方
children()
は
ジャバスクリプト
はブラウザで解釈されます。 私の実験では、典型的なケースでは、それほど大きな性能差はありませんでした。
どちらを使うかは、直系の子孫だけを考慮するか、DOMでこのノードより下のすべてのノードを考慮するかによって決まります。つまり、メソッドの速度ではなく、求める結果に基づいて適切なメソッドを選択するのです。もし本当にパフォーマンスが問題なら、実験して最適な解決策を見つけてそれを使ってください(あるいは、ここの他の回答にあるベンチマークのいくつかを見てください)。
関連
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] .prop() vs .attr()
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] jQueryで複数のクラスを持つ要素を選択するにはどうすればよいですか?
-
[解決済み] jQueryで名前を指定して要素を選択するには?
-
[解決済み] セレクトボックスのオプションをすべて削除してから、オプションを1つ追加して、jQueryで選択するにはどうすればよいですか?
-
[解決済み] 選択オプション「selected」を値で設定する
-
[解決済み] javascript(またはjQuery)を使って::beforeや::afterなどのCSS疑似要素を選択し、操作する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQuery onclick が動的に挿入された HTML 要素で発火しない?重複
-
[解決済み] jQueryのディファレンシャルとプロミス - .then() vs .done()
-
[解決済み] jQueryでdiv内のspanにテキストを追加する
-
[解決済み] チェックボックスのオン/オフの切り替え
-
[解決済み] jQuery .validate() submitHandler が起動しない
-
[解決済み] 3桁ごとの数字にカンマを追加
-
[解決済み] jQueryでborder-bottomの色を変更する?
-
[解決済み] jQuery resizableを画像と結合する方法は?
-
[解決済み] jqueryでラジオボタンを検証する?
-
[解決済み】選択変更時にデータ属性の値を取得する。