作者:Martha829 | 来源:互联网 | 2023-01-13 18:58
我想首先说我是普通Javascript的新手,所以如果有明显的话,我很抱歉.
当有人使用以下代码重新提交表单时,我试图删除错误.
let div = document.getElementsByClassName('error')
if (div.length > 0 ){
console.log(div);
console.log('Length: ' + div.length);
for (i = 0; i <= div.length; i++){
console.log('i= ' + i)
let e = div[i]
e.innerHTML = ''
e.classList.remove('error')
}
}
这有效,sorta,我最终得到所有其他div与错误类被改变而不是所有.
Developer Console截图
1> Pointy..:
该.getElementsByClassName()
函数返回一个实时 NodeList.这意味着当您更改条目上的类时,它将从列表中消失.列表的长度会减一,因此您的迭代会跳过其他所有条目.
一个好方法是在列表为空之前对列表中的第一个操作进行操作:
while (div.length) {
let e = div[0]
e.innerHTML = ''
e.classList.remove('error')
}