将innerHTML与querySelectorAll一起使用

时间:2015-01-16 11:52:43

标签: javascript

我希望在重新提交尝试时使用类似于以下内容的方法来清除表单中的错误:

document.querySelectorAll("#form-error-name, #form-error-email, #form-error-tel, #form-error-dob, #form-error-password, #form-error-goal").innerHTML= "";

...但是div的内容没有被清除。我做错了什么?

3 个答案:

答案 0 :(得分:4)

试试这个:

var x = document.querySelectorAll("#form-error-name, #form-error-email, #form-error-tel");
var i;
for (i = 0; i < x.length; i++) {
    x[i].innerHTML = "";
}

看,如果有帮助。

答案 1 :(得分:2)

你需要循环结果

    var errors = document.querySelectorAll(
               "#form-error-name, 
                #form-error-email, 
                #form-error-tel, 
                #form-error-dob, 
                #form-error-password, 
                #form-error-goal");

[].forEach.call(errors, function(error) {
  error.innerHTML = '';
});

querySelectorAll不返回数组,而是返回一个节点列表,其原型上没有forEach方法。

上面的循环在nodeList对象上使用数组对象原型上的forEach方法。

答案 2 :(得分:0)

合适的现代答案应该是

[... document.querySelectorAll('input')].map(i => i.value = '');
相关问题