我使用它来显示需要隐藏的项目,直到单击按钮将其显示为止,问题是它已完成了它应做的工作,但在控制台上仍显示错误。这是我正在使用的代码。

    <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:无法读取未定义的属性“ style”

第53行如下(它位于for循环内):

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


我希望您能理解我的代码和文字,因为我似乎无法找到正确的方法来解释此错误,老实说,我不知道我在做什么错,感谢您的阅读,希望您能对我有所帮助。

最佳答案

是因为错字。在for循环内,将条件更改为elements.length而不是elements.lenght

为什么有效

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

因此elements[0]效果很好。然后将其移至未定义的下一步elements[1],由于我们正在访问undefined的style属性,因此会引发错误

关于javascript - 问题与document.getElementsByClassName,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49440802/

10-12 13:50