我有类似的东西,但我不知道问题在哪里。控制台说 - Cannot read property 'style' of undefined
<div class="price-table-box"></div>
<div class="price-table-box"></div>
<div class="price-table-box"></div>
<div class="price-table-box"></div>
var table = document.getElementsByClassName('price-table-box');
for (var i = 0; i <= table.length; i++) {
table[i].style.display = 'none';
}
答案 0 :(得分:3)
你正在循环太多元素。 table[4]
不存在,因此undefined
。
从0-3循环,而不是从0-4循环:
for (var i = 0; i < table.length; i++)
答案 1 :(得分:-2)
有人指出你正在尝试访问不存在的数组元素。万一你有多个问题...
在页面加载完成之前,您无法通过'document.get ...'方法访问DOM对象,因为它们在技术上尚不存在,或者尚不可访问。你需要把你的javascript放到window.onload事件处理程序或类似的。
window.onload = function(){
var table = document.getElementsByClassName('price-table-box');
for (var i = 0; i <= table.length; i++) {
table[i].style.display = 'none';
}
};
确保将onload所需的所有内容放入此函数中(或从中调用它),否则您将覆盖以前的声明。