Изменить порядок элементов DOM при использовании jQuery each () - PullRequest
0 голосов
/ 11 ноября 2010

Есть ли способ изменить порядок, в котором JQuery каждый () обращается к элементам на странице?

Т.е. у меня есть 4 элемента на странице, и я хочу, чтобы элемент 3 был первым, затем 2, затем 4 и затем 1.

Спасибо

Richard

Ответы [ 4 ]

5 голосов
/ 11 ноября 2010

Предположим, вы переупорядочиваете изображения.

imgs = $( 'img' );

imgs.eq( 3 ).insertBefore( imgs.eq( 1 ) );

imgs.eq( 1 ).insertAfter( imgs.eq( 4 ) );

Нужно добиться цели.

2 голосов
/ 11 ноября 2010

.each() доставит узлы так же, как они отображаются в DOM. Но он также передает index в функции callback. Так что если вам нужно действовать по-другому, проверьте индекс

$('object').each(function(index) {
    if( index === 2)
        alert('yay');
});

Ссылка: .each ()

0 голосов
/ 11 ноября 2010
$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.

0 голосов
/ 11 ноября 2010

, если вы знаете, почему бы просто не ссылаться на них в таком порядке, не используя each.

...