Есть ли способ изменить порядок, в котором JQuery каждый () обращается к элементам на странице?
Т.е. у меня есть 4 элемента на странице, и я хочу, чтобы элемент 3 был первым, затем 2, затем 4 и затем 1.
Спасибо
Richard
Предположим, вы переупорядочиваете изображения.
imgs = $( 'img' ); imgs.eq( 3 ).insertBefore( imgs.eq( 1 ) ); imgs.eq( 1 ).insertAfter( imgs.eq( 4 ) );
Нужно добиться цели.
.each() доставит узлы так же, как они отображаются в DOM. Но он также передает index в функции callback. Так что если вам нужно действовать по-другому, проверьте индекс
.each()
index
callback
$('object').each(function(index) { if( index === 2) alert('yay'); });
Ссылка: .each ()
$items = $('.my-selector'); my_array = [ $items.get(2), $items.get(1), $items.get(3), $items.get(0) ]; jQuery.each(my_array, callback_function);
Обратите внимание, что объект jQuery индексируется 0.
, если вы знаете, почему бы просто не ссылаться на них в таком порядке, не используя each.
each