无法阅读属性' style'未定义的

时间:2016-02-18 21:52:46

标签: javascript

我有类似的东西,但我不知道问题在哪里。控制台说 - 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';
}

2 个答案:

答案 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所需的所有内容放入此函数中(或从中调用它),否则您将覆盖以前的声明。