获取Javascript错误消息,指出未定义已定义的数组

时间:2014-07-26 20:56:18

标签: javascript

在我的程序开始时,我正在声明并填充在整个程序的其余部分使用的4个数组:

var imageArrayGroup = [];
var floatingButtonArrayGroup = [];
for (i = 1; i < 3; i++) {
    imageArrayGroup[i] = document.createElement("img");
    imageArrayGroup[i].type = "image";
    floatingButtonArrayGroup[i] = document.getElementById('floatingButton' + (100 + i));
    floatingButtonArrayGroup[i].style.paddingLeft = "35px";
    floatingButtonArrayGroup[i].style.paddingTop = "5px";
}
var imageArray = [];
var floatingButtonArray = [];
for (i = 1; i < 10; i++) {
    imageArray[i] = document.createElement("img");
    imageArray[i].type = "image";
    floatingButtonArray[i] = document.getElementById('floatingButton' + (i));
    floatingButtonArray[i].style.paddingLeft = "35px";
    floatingButtonArray[i].style.paddingTop = "5px";
}

稍后在代码中,我调用一个引用数组的函数。

function clearThumbnails() {
    for (i = 1; i < 10; i++) {
        if (floatingButtonArray[i].hasChildNodes())
            floatingButtonArray[i].removeChild(imageArray[i]);
    }
    for (i = 1; i < 3; i++) {
        if (floatingButtonArrayGroup[i].hasChildNodes())
            floatingButtonArrayGroup[i].removeChild(imageArrayGroup[i]);
    }
}

运行此功能时,我收到错误&#34; Uncaught TypeError:无法读取属性&#39; 1&#39;未定义&#34;

为什么变量未定义?

完整代码可在以下位置找到:http://codepen.io/angstd/pen/ropca 点击&#34; Garage&#34;得到错误信息。

1 个答案:

答案 0 :(得分:0)

您收到错误TypeError: floatingButtonArrayGroup[i] is null,这似乎来自您的第一个循环。这是一个运行时错误,它将在该点终止脚本的执行。

这意味着作业var floatingButtonArray = []; 永远不会被执行

看起来你正试图获得一个当时不存在的元素的引用。有关该问题的解决方案,请参阅Why does jQuery or a DOM method such as getElementById not find the element?