См текущий код, как вы отправили:
function removeElems() {
elems = document.querySelectorAll('.header');
for(e of elems) {
setTimeout(function() {
console.log(e);
e.remove();
}, 1000 );
}
}
removeElems();
<div id="container">
<div class="header">1</div>
<div class="header">2</div>
<div class="header">3</div>
<div class="header">4</div>
<div class="header">5</div>
<div class="header">6</div>
</div>
Обратите внимание, что e
вызывает только последний header
.
Вы можете использовать следующее:
function removeElems() {
elems = document.querySelectorAll('.header');
for(let i = 0; i < elems.length; i++) {
setTimeout(function() {
elems[i].remove();
}, 1000 );
}
}
removeElems();
<div id="container">
<div class="header">1</div>
<div class="header">2</div>
<div class="header">3</div>
<div class="header">4</div>
<div class="header">5</div>
<div class="header">6</div>
</div>
для удаления всех после задержки.Или:
var i = 0;
var elems = document.querySelectorAll('.header');
function removeElems() {
if( i < elems.length) {
setTimeout(function() {
elems[i].remove();
i++;
removeElems();
}, 1000 );
}
}
removeElems();
<div id="container">
<div class="header">1</div>
<div class="header">2</div>
<div class="header">3</div>
<div class="header">4</div>
<div class="header">5</div>
<div class="header">6</div>
</div>
для удаления элемента 1 на 1, начиная с первого.
Или с последнего:
var elems = document.querySelectorAll('.header');
var i = elems.length-1;
function removeElems() {
if( i >= 0) {
setTimeout(function() {
elems[i].remove();
i--;
removeElems();
}, 1000 );
}
}
removeElems();
<div id="container">
<div class="header">1</div>
<div class="header">2</div>
<div class="header">3</div>
<div class="header">4</div>
<div class="header">5</div>
<div class="header">6</div>
</div>