Всегда ли порядок элементов в jQuery-обернутом наборе всегда соответствует порядку, в котором элементы появляются в разметке?

Гарантирован ли порядок элементов в упакованном наборе jQuery совпадает с порядком, в котором элементы появляются в разметке?

Я спрашиваю, потому что мне нужно выполнить операцию над множеством вложенных элементов, и мне нужно всегда выполнять операцию в порядке вложенности.

Могу ли я просто запустить операцию, используя итератор .each() для соответствующего набора, и всегда получить правильный порядок, или мне нужно найти какой-то другой способ, чтобы гарантировать, что порядок операций соответствует порядку вложения?

Ответ 1

jQuery будет соответствовать вашему запросу сверху вниз, поэтому согласованный набор всегда будет таким же.

Ответ 2

Просто смотрел на это сам. jQuery возвращает данные в порядке документа в соответствии со следующей статьей:

http://docs.jquery.com/Release:jQuery_1.3.2

Итак, если вы выберете некоторые идентификаторы как таковые:

$("#id1, #id2, #id3")

Затем они будут возвращены в том порядке, в котором они появляются в DOM, не обязательно в том порядке, в котором они указаны. Его, конечно, стоит знать об этом при обновлении с более ранней версии более поздней версии jQuery.

Ответ 3

Я забыл, какая именно версия была, но JQuery 1.3.x гарантировал, что порядок документов был порядком результирующих элементов, даже с запросами типа "span, div". (Предыдущие версии не вернули результаты в порядке документа, и я нуждался в этом несколько раз.)