在下面的代码中,
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; }
按照调试,对于每个回调函数element
的elements
阵列没有执行上单击事件.
我认为elements
是键控集合,如下所示..
-
如何解决此错误?
forEach
不包含在HTMLCollection
返回的类数组对象的原型中getElementsByClassName
.
一个HTMLCollection
实例是阵列状,在您可以通过索引访问元素,但它不包括所有的阵列的方法,因为你有发现forEach
.
但是,您可以通过从Array
原型访问方法来手动调用对象上的方法.
var elements = document.getElementsByClassName('hide'); Array.prototype.forEach.call(elements, function(element){ element.style.visibility = "hidden"; });