-1

ページ上の要素を見つけたい場合は、 $('#Foo'); を使用します。

ここで、'this' コンテキストが jQuery 要素であるシナリオがあります。「これ」の下にある要素を見つけたいと思います。

私は使っている:

$(this).find('#Foo');

これをより明確に表現する方法がないことを確認したかっただけです。this コンテキストにない場合は、$('#this #Foo') のようなものを使用する可能性があります。「this」jQuery 要素への明示的な参照があると、jQuery セレクター クエリが長くなるのは驚くべきことです。

4

4 に答える 4

2

最初に、要素 ID はドキュメントに固有であるため、別の要素のコンテキスト内で ID を見つける必要はありません。

$('.foo', this) クラス「foo」を持つすべての子を検索します

于 2013-02-08T18:42:42.663 に答える
1

.children()よりも高速です.find()

$(this).children('#Foo');

説明

理由は、ノードの下のDOM全体をトラバースし.children()ながら、ノードの直接の子のみを調べるため、同等の実装を考えると高速になるはずです。ただし、ネイティブ ブラウザ メソッドを使用し、ブラウザで解釈される JavaScript を使用します。私の実験では、典型的なケースではパフォーマンスに大きな違いはありません。.find().children()findchildren

参考文献

  1. jQueryで最速のchildren()またはfind()は何ですか?
  2. トラバース.children()
  3. トラバース.find()
于 2013-02-08T18:41:33.430 に答える
0

ID で要素を検索している場合は、$(this) を事前に選択する必要はありません。要素 ID は一意である必要があります。2 つの要素が同じ ID を持つことはできません。とは言っても、クラスなどの他の要素で選択する場合は、サブ要素を選択するために $(this).find(".myclass") を使用する必要があります。

于 2013-02-08T19:03:15.507 に答える
0

IDs should be unique, so the quickest way to select #Foo in jQuery would simply be

$('#Foo')

To answer your question, the .children() method is faster than .find() in most browsers, and it works the same as long as you're dealing with direct descendants.

$(this).children('#Foo')

I put together a JSPerf which demonstrates this. Keep in mind that in most cases the performance difference is negligible.

于 2013-02-08T18:40:46.490 に答える