9

jquery を使用すると、DOM 内の順序付けられていないリスト内のリスト項目を見つける方法が 2 つあるようです。

$("ul>li");

$("ul").find("li"); 

後者がより好ましい理由はありますか?同じ結果を得るには、より多くのコードが必要になるようです。

4

2 に答える 2

12

うん。スピード。.find()毎回勝ちます。そして処理速度は並です!

私が何を意味するかを示すjsPerfスピードテスト

ただし.find()、下位のすべて (子、子の子、子の子の子など) を取得し>、直接の子セレクターです。次のいずれかを比較するのは、より良いりんご対りんごです。

  • $('ul li')$('ul').find('li')
  • $('ul > li')$('ul').children('li')

. _ .find('li')_.children('li')

含まれるようにjsPerfを更新しました.children()

于 2013-04-30T20:28:28.323 に答える
1

1) それらは同じではありません。2 番目の形式は と同等で$("ul li");あり、最初の形式は と同等です。$("ul").children("li")

2) 2 番目の形式を使用している場合は、jQuery の解析タスクが簡素化されます。ただし、コードが単純でなくなるため、速度が非常に重要であることが証明されない限り、お勧めしません。これは、通常、要素のキャッシュやその他のトラバース関数などを使用して、より多くのコードを持っていると言われているため、 の使用が正当化されますfind

于 2013-04-30T20:28:14.553 に答える