注文オブジェクトは指定されたjQueryセレクターによって返されますか?


92

すべてのjQueryセレクターはオブジェクトの配列を返します。これらのオブジェクトは常にHTML内と同じ順序ですか?これは信頼できますか?

回答:


114

はい。jQueryの1.3.2のリリースノートは言います:

ドキュメントの順序で返される要素

これは、返された結果を、セレクターが渡された順序ではなく、ドキュメントの順序に並べ替えるjQueryのセレクターエンジンへの変更です。この変更は、セレクターAPI仕様(これは、 jQueryは、それをサポートするブラウザーで内部的に使用されます)。

これはjQuery 1.3では当てはまりませんでした。

「a、b、c」スタイルセレクタの順序は変更される場合があります。querySelectorAllをサポートするブラウザー(Safari、Firefox 3.5以降、Opera 10以降、IE 8以降)はドキュメントの順序で要素を返し、他のブラウザーは(現在)指定された順序で要素を返します。1.3.2以降のリリースでは、すべてのコンマ区切りのセレクターがドキュメント順に返されます。


1
それが本当にリリースノートにあることは興味深いことですが、それも理にかなっていますが、誰かがapi.jquery.com/multiple-selectorにもそれを置くのを忘れていました-親愛なる誰か、そこにもこの情報を追加してください:)!
jave.web 2016

8

いくつかの例外があるかもしれません、例えばprevAll()のドキュメントから:

「一連のDOM要素を表すjQueryオブジェクトがある場合、.prevAll()メソッドは、DOMツリー内のこれらの要素の先行を検索し、一致する要素から新しいjQueryオブジェクトを構築します。要素は、最も近い兄弟。」

http://api.jquery.com/prevAll/


3

はい、DOMと同じように常に順番に並んでいます。


0

おそらくそれらを見つける順序で、セレクターはDOMをほぼ通過し、一致する要素を見つけると、それを配列に入れます。

たとえば、nが数字である "textbox_n"のIDを持つ5つのテキストボックスをテストしてから、リストに警告して何が得られるかを確認することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.