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