Ответ 1
Итак, после прочтения документов и отхода еще не совсем уверен, я закончил погружение, фактически прочитав исходный код jQuery (спасибо @RoryMcCrossan ответ за подсказку).
Фактически (в отличие от того, что сказал @RoryMcCrossan), $().each()
использует либо for...in
, либо for
, в зависимости от того, является ли вход объектом или массивом.
Для "массива" достаточно быть "подобным массиву" объекту, который имеет место для объекта jQuery, поскольку он содержит нумерованный список элементов и свойство length
.
Следовательно, вызов $().each()
будет использовать for
, а не for...each
, поскольку он выполняет итерацию по объекту jQuery. И поскольку мы используем for
, мы знаем, что мы можем гарантировать, что порядок итераций для $().each()
будет соответствовать порядку элементов, которые он задает.
Итак, это заставляет меня задавать следующий вопрос о том, гарантирован ли порядок элементов, заданный исходным запросом, таким же, как и в DOM. Если да, тогда я должен быть в порядке.
Ответ на этот вопрос можно найти в вопросе связанном с комментариями @Mritunjay, и ответ "да", они возвращаются в том порядке, в котором они отображаются в DOM.
Итак, окончательный ответ: да, я могу использовать $('.myList li').each()
и перебирать элементы списка в порядке их появления в DOM.
Спасибо за помощь и подсказки ребята. Очень ценится.