Все селекторы jQuery возвращают массив объектов. Всегда ли эти объекты находятся в том же порядке, что и в HTML? Могу я на это рассчитывать?
Да.
В примечаниях к выпуску jQuery 1.3.2 говорится:
Элементы, возвращенные в порядке документа
Это изменение в механизме селектора jQuery, которое переупорядочивает возвращаемые результаты, чтобы они были в порядке документа, а не в порядке, в котором были переданы селекторы. Это изменение было сделано для того, чтобы соответствовать спецификации API селекторов (которая jQuery используется внутри в браузерах, которые его поддерживают).
Порядок выбора стилей «a, b, c» может измениться. Браузеры, поддерживающие querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+), будут возвращать элементы в порядке документа, другие браузеры (в настоящее время) будут возвращать их в указанном порядке. В версии 1.3.2 и более поздних все селекторы, разделенные запятыми, будут возвращены в порядке документа.
Могут быть некоторые исключения, например из документации prevAll ():
"Учитывая объект jQuery, представляющий набор элементов DOM, метод .prevAll () просматривает предшественников этих элементов в дереве DOM и создает новый объект jQuery из соответствующих элементов; элементы возвращаются в порядке, начиная с ближайший брат ".
http://api.jquery.com/prevAll/
источник
Да, они всегда в том порядке, в котором они находятся в DOM.
источник
Вероятно, в том порядке, в котором он их находит, селектор в значительной степени пересекает DOM и, когда находит соответствующий элемент, помещает его в массив.
Вы могли бы провести тест, скажем, 5 текстовых полей с идентификатором "textbox_n", где n - число, а затем предупредить список и посмотреть, что вы получите?
источник