使用for循环来定义全局变量

时间:2014-08-06 17:44:24

标签: javascript

我在JS文件的顶部定义了一些全局数组。有用于填充数组的循环。我已经完成了非常类似的工作,但由于某种原因,这是有问题的。第一个for循环只运行一次,下面的代码永远不会运行。

var group = 'a';
var RoofVar = 1;
var TrimVar = 1;
var BBVar = 1;
var imageArrayGroup0 = [];
var floatingButtonArrayGroup0 = [];
var labelArrayGroup0 = [];
for (a = 1; a < 3; a++) {
    labelArrayGroup0[a] = document.createElement("Label");
    labelArrayGroup0[a].type = "Label";
    floatingButtonArrayGroup0[a] = document.getElementById('floatingButton0' + (100 + a));
    floatingButtonArrayGroup0[a].style.textAlign = "center";
    floatingButtonArrayGroup0[a].style.paddingTop = "5px";
    labelArrayGroup0[a] = document.getElementById('floatingButton0' + (100 + x));
}

var imageArray0 = [];
var floatingButtonArray0 = [];
var labelArray0 = [];
for (b = 1; b < 5; b++) {
    imageArray0[b] = document.createElement("img");
    imageArray0[b].type = "image";
    floatingButtonArray0[b] = document.getElementById('floatingButton0' + (b));
    floatingButtonArray0[b].style.paddingLeft = "15px";
    floatingButtonArray0[b].style.paddingTop = "5px";
    labelArray0[b] = document.getElementById('floatingButton0' + b);
}

var imageArray1 = [];
var floatingButtonArray1 = [];
var labelArray1 = [];
for (c = 1; c < 3; c++) {
    imageArray1[c] = document.createElement("img");
    imageArray1[c].type = "image";
    floatingButtonArray1[c] = document.getElementById('floatingButton1' + (c));
    floatingButtonArray1[c].style.paddingLeft = "15px";
    floatingButtonArray1[c].style.paddingTop = "5px";
    labelArray1[c] = document.getElementById('floatingButton1' + c);
}

2 个答案:

答案 0 :(得分:0)

保罗有我的回答。我忘了关掉&#34; x&#34;对于&#34; a&#34;。

答案 1 :(得分:0)

除了(100 + x)而不是(100 + a)之外,您还有其他问题。

首先,JavaScript中的数组是“从零开始”,但循环从1开始。 这意味着你要把东西放进去,但是点'0'未定义,这可能会在以后破坏。

下一步。在循环开始时,您将labelArrayGroup0[a]设置为一个新的空白标签,但是您从不做任何事情将它放在页面上。在循环结束时,您将labelArrayGroup0[a]覆盖到从页面中提取的floatingButton元素。

实际上,你在每个循环中都这样做 - 最后一行重置第一行的值。 目前尚不清楚你想要完成什么。大概你打算将labelArrayGroup0[a]添加到页面中吗?

另外,在中间,你设置floatingButtonArrayGroup0[a] = document.getElementById('floatingButton0' + (100 + a));,它与你在循环的最后一行中获取的元素相同......