I have a page with 100 elements of the same class name. I use JavaScript to generate them such as below:
for(let i = 0; i < 100; i++){
var element = document.createElement("div");
element.classList.add("hi");
element.innerHTML="hi";
document.body.appendChild(element);
}
console.log(document.getElementsByClassName("hi").length); //This logs how many there are
I then tried to delete them. However, that only deleted half of them. Result can be seen here:
for(let i = 0; i < 100; i++){
var element = document.createElement("div");
element.classList.add("hi");
element.innerHTML="hi";
document.body.appendChild(element);
}
var elements = document.getElementsByClassName("hi");
for(let i = 0; i < elements.length; i++){
elements[i].remove();
}
console.log(document.getElementsByClassName("hi").length);
As seen above, it logs 50 elements, which means my FOR loop only deleted half of them.
Why is this happening and how do I fix it?