I'd like to execute a function that iterates over the child nodes of an element and subsequently deletes each child node.
In my current setup, for some reason, only some of the child nodes get deleted, some don't. The function needs to run multiple times to delete all nodes. Why aren't all nodes deleted at once?
Here's a simplified version of the code:
const deleteBtn = document.getElementById("deleteBtn");
const sidebar = document.getElementById("sidebar");
deleteBtn.addEventListener("click", () => {
const links = sidebar.children;
console.log(links)
for (let i = 0; i < links.length; i++) {
const link = links[i];
link.remove()
}
})
.sidebar__link-group {
display: flex;
flex-direction: column;
}
<button id="deleteBtn" >Click to delete all links</button>
<div id="sidebar" class="sidebar__link-group">
<a class="sidebar__link" href="#">Some link</a>
<a class="sidebar__link" href="#">Some link</a>
<a class="sidebar__link" href="#">Some link</a>
<a class="sidebar__link" href="#">Some link</a>
<a class="sidebar__link" href="#">Some link</a>
<a class="sidebar__link" href="#">Some link</a>
</div>