先上代码:
const arr = document.getElementsByClassName('classname');
const l = arr.length;
for (let i = l - 1; i >= 0; i--) {
if (arr[i] != null) {
arr[i].parentNode.removeChild(arr[i]);
}
}
之前在论坛看到其他小伙伴用的正向遍历,即i++,试了下发现每次不能清除干净,总会漏掉几个。这是因为arr长度发生了变化,原本的下标已经不能遍历到了。
改成从末尾清除,就完美解决了这个问题。