document.getElementsByClassName问题

时间:2018-03-23 00:57:56

标签: javascript html

我用它来显示一个需要保持隐藏的项目,直到我点击一个按钮来显示它,问题是它做了它的意图,但仍然在控制台上显示错误。这是我正在使用的代码。

    <button onclick="MostrarPuntaje()">Mostrar Puntajes</button>

和按钮调用的Javascript函数:

    function MostrarPuntaje(){

var elements = document.getElementsByClassName('puntaje');
for(var i = 0; i!=elements.lenght; i++){
    elements[i].style.visibility = 'visible';
}

最后,这是控制台显示的错误,即使它确实显示了隐藏的项目。

tablero.html:53未捕获的TypeError:无法读取未定义的属性“样式”

第53行是(它在for循环中):

elements[i].style.visibility = 'visible';

我希望你能理解我的代码和我的话,因为我似乎无法找到解释这个错误的正确方法,老实说我不知道​​我做错了什么,感谢阅读,我希望你能帮助我。

1 个答案:

答案 0 :(得分:2)

这是因为拼写错误。在for循环中将条件更改为elements.length而不是elements.lenght

为什么会有效

for循环条件i!=elements.lenght将被解释为i!= undefined并且条件始终为真,因为索引从0开始并且增加。

所以elements[0]效果很好。然后它将移动到未定义的下一步elements[1]并且由于我们正在访问未定义的样式属性而抛出错误