Как вывести выборку элементов DOM по порядку в JQ?
Подскажите пожалуйста, не могу понять в чем дело.
Задача: Есть набор дом элементов (может быть любым). Я скрываю все элементы, беру набор элементов из DOM по классу, случайным образом выбираю, например 5 элементов, добавляю их в пустой массив и хочу вывести только их из массива через перебор each
, но по порядку. В итоге выводится нумерация в разнобой... В чем тут дело? Перебор перебирает не по порядку?
$(document).ready(function () {
var elems = $(".test");
var items_ = [];
for (var i = 0; (i < 5) && (i < elems.length); i++) {
var r = Math.floor(Math.random() * (elems.length - i)) + i;
var res = elems[r];
elems[r] = elems[i];
elems[i] = res;
items_.push(res)
}
$('.test').fadeOut('slow', function(){
$(items_).each(function (index) {
$(this).find('.number_test').text(index + 1);
$(this).fadeIn('slow')
});
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div class="test">Первый - <span class="number_test"></span></div>
<div class="test">Второй - <span class="number_test"></span></div>
<div class="test">Третий - <span class="number_test"></span></div>
<div class="test">Четвертый - <span class="number_test"></span></div>
<div class="test">Пятый - <span class="number_test"></span></div>
<div class="test">Шестой - <span class="number_test"></span></div>
<div class="test">Седьмой - <span class="number_test"></span></div>
<div class="test">Восьмой - <span class="number_test"></span></div>
<div class="test">Девятый - <span class="number_test"></span></div>
<div class="test">Десятый - <span class="number_test"></span></div>