Os objetos de pedido são retornados por um seletor jQuery especificado?

92

Todos os seletores jQuery retornam uma matriz de objetos. Esses objetos estão sempre na mesma ordem em que estão no HTML? Posso contar com isso?

user28584
fonte

Respostas:

114

Sim.
As notas da versão do jQuery 1.3.2 dizem:

Elementos devolvidos na ordem do documento

Esta é uma mudança no mecanismo de seleção do jQuery que reordena os resultados retornados para que fiquem na ordem do documento, em vez da ordem em que os seletores foram passados. Essa mudança foi feita para estar em conformidade com a especificação da API dos seletores (que jQuery usa, internamente, em navegadores que o suportam).

Este não foi o caso no jQuery 1.3 :

A ordem dos seletores de estilo "a, b, c" pode mudar. Os navegadores que suportam querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) retornarão os elementos na ordem do documento, outros navegadores irão (atualmente) retorná-los na ordem especificada. Na versão 1.3.2 e posterior, todos os seletores separados por vírgula serão retornados na ordem do documento.

Kobi
fonte
1
Interessante que está realmente nas notas de lançamento, e também faz sentido, mas alguém se esqueceu de colocá-lo também em api.jquery.com/multiple-selector - querido alguém, por favor, adicione esta informação aqui também :)!
jave.web
8

Pode haver algumas exceções, por exemplo, da documentação prevAll ():

"Dado um objeto jQuery que representa um conjunto de elementos DOM, o método .prevAll () pesquisa os predecessores desses elementos na árvore DOM e constrói um novo objeto jQuery a partir dos elementos correspondentes; os elementos são retornados em ordem, começando com o irmão mais próximo . "

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

Emery Lapinski
fonte
3

Sim, eles estão sempre na ordem em que estão no DOM.

reko_t
fonte
0

Provavelmente na ordem em que os encontra, um seletor praticamente atravessa o DOM e, quando encontra um elemento correspondente, o coloca em um array.

Você poderia talvez fazer um teste tendo, digamos, 5 caixas de texto com id's de "textbox_n" onde n é um número, então alertar a lista e ver o que obtém?

royse41
fonte