Вернулись ли объекты порядка с помощью селектора jQuery?

Все селекторы jQuery возвращают массив объектов. Являются ли эти объекты всегда в том же порядке, что и в HTML? Могу ли я полагаться на это?

Ответ 1

Да.
примечания к выпуску jQuery 1.3.2 говорят:

Элементы, возвращенные в заказе документа

Это изменение для механизма выбора jQuery, которое заново заказывает возвращенные результаты в порядке документа, а не в порядке, в котором были переданы селекторы. Это изменение было выполнено для соответствия API-интерфейсам Selectors (который jQuery использует внутри, в браузерах, которые его поддерживают).

Это не относится к jQuery 1.3:

Порядок селекторов стиля "a, b, c" может измениться. Браузеры, поддерживающие querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+), возвращают элементы в порядке документа, другие браузеры будут (в настоящее время) возвращать их в указанном порядке. В версии 1.3.2 и более поздних версиях все разделители, разделенные запятыми, будут возвращены в порядке документа.

Ответ 2

Могут быть некоторые исключения, например, из документации prevAll():

"Учитывая объект jQuery, представляющий набор элементов DOM, метод .prevAll() ищет через предшественники этих элементов в дереве DOM и конструирует новый объект jQuery из соответствующих элементов; элементы возвращается в порядке, начиная с ближайшего брата.

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

Ответ 3

Да, они всегда в порядке, так как они находятся в DOM.

Ответ 4

Вероятно, в том порядке, в котором он их находит, селектор довольно много перемещает DOM и когда он находит элемент, который соответствует, помещает его в массив.

Возможно, вы можете сделать тест, указав 5 текстовых полей с идентификатором "textbox_n", где n - число, затем предупредить список и посмотреть, что вы получаете?