当前位置:  开发笔记 > 编程语言 > 正文

forEach回调不会使用getElementsByClassName执行

如何解决《forEach回调不会使用getElementsByClassName执行》经验,为你挑选了1个好方法。

在下面的代码中,



    
        Hide odd rows
        
    
    
        

row 1
row 2
row 3
row 4
row 5


/* 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;
}

按照调试,对于每个回调函数elementelements阵列没有执行上单击事件.

我认为elements是键控集合,如下所示..

在此输入图像描述

-

如何解决此错误?



1> Alexander O'..:

forEach不包含在HTMLCollection返回的类数组对象的原型中getElementsByClassName.

一个HTMLCollection实例是阵列状,在您可以通过索引访问元素,但它不包括所有的阵列的方法,因为你有发现forEach.

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

var elements = document.getElementsByClassName('hide');
Array.prototype.forEach.call(elements, function(element){
    element.style.visibility = "hidden";
});

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有