Подтвердить что ты не робот

Является ли jQuery всегда итерацией через DOM в порядке, в котором они находятся в коде?

Скажем, например, у меня есть сортируемый список:

<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

Что я хочу знать, если я вызываю вызов jQuery, например следующее:

$.each($('li'), function(key, item) {...});

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

4b9b3361

Ответ 1

"Могу ли я ожидать, что jQuery пройдет через записи сверху вниз?"

Да. Они повторяются числовым индексом от 0 до length - 1.

Элементы всегда будут возвращаться в том порядке, в котором они отображаются в DOM.

"Я провел несколько тестов и попытался переставить элементы динамически..."

Он не учитывает позиционирование CSS, если это то, что вы имеете в виду. Если вы измените свое фактическое местоположение в DOM, вы увидите обновления только в том случае, если вы переустановите их из DOM.

Ответ 2

Он не использовался, но поскольку jQuery 1.3.2 селекторы возвращают элементы в том порядке, в котором они находятся в DOM.

Ответ 3

В документах, которые обещают это поведение, нет, но это способ, которым он в настоящее время реализуется.

Тем не менее, я не вижу причины, почему они меняют это поведение.