Как подсчитать и удалить лишние блоки, между блоками?
Как оставить только 3 таких блока <div class="done">Done</div>?
Если больше трех, то оставить первых 3, остальные удалить
Если меньше 3 или нет ни одного, то добавить, чтобы было 3 таких блока, между блоками start и stop
function done(item = 3) {
// ...
}
done(3); // в параметре регулируется количество блоков done
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="start">Start</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="stop">Stop</div>
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
function done(item = 3) {
let doneElementsCount = $('.done').length;
if (doneElementsCount < item) {
for (let i = 0; i < item - doneElementsCount; i++) {
$('.start').after('<div class="done">Done</div>');
}
return;
}
if (doneElementsCount > item) {
for (let i = doneElementsCount; i > item - 1; i--) {
$('.done').eq(i).remove();
}
return;
}
}
done(6);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="start">Start</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="done">Done</div>
<div class="stop">Stop</div>