15

たとえば、 を使用する場合$('div span')、jQuery はどのようにしてそのような検索を行うのでしょうか?

span最初に要素を検索しますdivか?

jQueryの公式サイトには、これらのことについての説明がないようです。API を介して使用できる機能を示すだけです。

すべてのタイプの jQuery セレクターがどのように実装されているかを知りたいので、使用するのに最適なセレクターを選択できます。

そのような情報をどこで入手できるか知っていますか?

4

5 に答える 5

7

大まかに、知っておくべきこと:

  1. jQuery はセレクターを右から左に読み取ります。
  2. 最適化された JavaScript ネイティブ メソッドを使用するため、正確な ID を使用するのが最も速く、次に正確なタグ名を使用します。
  3. のようなネイティブ CSS セレクターは、 のようなjQueryセレクターよりも高速:first-childです。:first

公式の Sizzle ドキュメントを読むこともできますが、最適化手法についてはあまり議論されていません。

于 2012-07-24T13:24:00.430 に答える
4

span最初に要素を検索します。セレクターを次のように解析します。

  1. tagName=spanの要素
  2. tagName=divの祖先を持つ

最初の部分では、getElementsByTagNameメソッドを使用してすべてのspan要素を検索し、次にそれぞれの祖先をループしてdiv要素を検索する必要があります。

于 2012-07-24T14:03:36.423 に答える
0

探すのに最も簡単な場所は、ソースから直接読むことです。jquery サイトから uncompresserd ソースをダウンロードし、生のソースから何をどの順序で行うかを読み取ります。

http://jquery.com/download/

于 2012-07-24T13:19:57.040 に答える
0

@Juhanaがコメントているように、セレクターに基づいてオブジェクトを選択するために jQuery が使用する特定のメソッドを知りたい場合は、github リポジトリを参照してください。

https://github.com/jquery/jquery/

または、圧縮されていない jQuery ダウンロードで入手できるソース コードを参照してください。

http://jquery.com/download/

利用可能なさまざまなセレクターを知りたいだけの場合は、jQuery でそれらのリストが提供されます。

http://api.jquery.com/category/selectors/

于 2012-07-24T13:20:23.387 に答える
0

それらは右から左に解析されます。

http://csswizardry.com/2011/09/writing-effective-css-selectors/およびなぜブラウザーは CSS セレクターを右から左に一致させるのですか? を参照してください。

于 2012-07-24T13:22:09.327 に答える