たとえば、 を使用する場合$('div span')
、jQuery はどのようにしてそのような検索を行うのでしょうか?
span
最初に要素を検索しますdiv
か?
jQueryの公式サイトには、これらのことについての説明がないようです。API を介して使用できる機能を示すだけです。
すべてのタイプの jQuery セレクターがどのように実装されているかを知りたいので、使用するのに最適なセレクターを選択できます。
そのような情報をどこで入手できるか知っていますか?
たとえば、 を使用する場合$('div span')
、jQuery はどのようにしてそのような検索を行うのでしょうか?
span
最初に要素を検索しますdiv
か?
jQueryの公式サイトには、これらのことについての説明がないようです。API を介して使用できる機能を示すだけです。
すべてのタイプの jQuery セレクターがどのように実装されているかを知りたいので、使用するのに最適なセレクターを選択できます。
そのような情報をどこで入手できるか知っていますか?
大まかに、知っておくべきこと:
:first-child
です。:first
公式の Sizzle ドキュメントを読むこともできますが、最適化手法についてはあまり議論されていません。
span
最初に要素を検索します。セレクターを次のように解析します。
最初の部分では、getElementsByTagName
メソッドを使用してすべてのspan
要素を検索し、次にそれぞれの祖先をループしてdiv
要素を検索する必要があります。
探すのに最も簡単な場所は、ソースから直接読むことです。jquery サイトから uncompresserd ソースをダウンロードし、生のソースから何をどの順序で行うかを読み取ります。
@Juhanaがコメントしているように、セレクターに基づいてオブジェクトを選択するために jQuery が使用する特定のメソッドを知りたい場合は、github リポジトリを参照してください。
https://github.com/jquery/jquery/
または、圧縮されていない jQuery ダウンロードで入手できるソース コードを参照してください。
利用可能なさまざまなセレクターを知りたいだけの場合は、jQuery でそれらのリストが提供されます。
それらは右から左に解析されます。
http://csswizardry.com/2011/09/writing-effective-css-selectors/およびなぜブラウザーは CSS セレクターを右から左に一致させるのですか? を参照してください。