javascript – forEach回调不会使用getElementsByClassName执行

前端之家收集整理的这篇文章主要介绍了javascript – forEach回调不会使用getElementsByClassName执行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在下面的代码中,

Meta charset="UTF-8">
    
/* hideOddRows.js */
document.querySelector('[name=HideRows]').onclick = hideRows;

function hideRows(){
    var elements = document.getElementsByClassName('hide');
    elements.forEach(function(element){
        element.style.visibility = "hidden";
    });
    return true;
}

根据调试,元素数组的每个元素的回调函数不会在click事件上执行.

我将元素视为键控集合,如下所示.

enter image description here

如何解决错误

最佳答案
forEach不包含在getElementsByClassName返回的类似数组的HTMLCollection对象的原型中.

HTMLCollection实例类似于数组,因为您可以通过索引访问元素,但它不包括数组的所有方法,正如您在forEach中发现的那样.

但是,您可以通过从Array原型访问方法来手动调用对象上的方法.

var elements = document.getElementsByClassName('hide');
Array.prototype.forEach.call(elements,function(element){
    element.style.visibility = "hidden";
});
原文链接:https://www.f2er.com/js/426910.html

猜你在找的JavaScript相关文章