不知道为什么这个变量不起作用

时间:2014-02-16 22:58:46

标签: javascript arrays

我目前正在使用

var hexArray = ["hexa", "hexb", "hexc", "hexd", "hexe", "hexf", "hexg", "hexh", "hexi", "hexj", "hexk", "hexl", "hexm"];

var burnArray = ["burna", "burnb", "burnc", "burnd", "burne", "burnf", "burng", "burnh", "burni", "burnj", "burnk", "burnl", "burnm"];

for(var i=0; i < hexArray.length; i++){
    document.getElementById(hexArray[i]).className='transtart ' + burnArray[i];
};

这很好用,但是当我改成它时:

var hexSelect = document.getElementById(hexArray[i]);

var hexArray = ["hexa", "hexb", "hexc", "hexd", "hexe", "hexf", "hexg", "hexh", "hexi", "hexj", "hexk", "hexl", "hexm"];

var burnArray = ["burna", "burnb", "burnc", "burnd", "burne", "burnf", "burng", "burnh", "burni", "burnj", "burnk", "burnl", "burnm"];

for(var i=0; i < hexArray.length; i++){
    hexSelect.className='transtart ' + burnArray[i];
};

它不再有效。我不明白为什么。

2 个答案:

答案 0 :(得分:1)

看看你的第一行:

var hexSelect = document.getElementById(hexArray[i]);

它不会编译,因为你使用for-loop中的i变量。

答案 1 :(得分:0)

var hexSelect = document.getElementById(hexArray[i]);

var hexArray = ["hexa", "hexb", "hexc", "hexd", "hexe", "hexf", "hexg", "hexh", "hexi", "hexj", "hexk", "hexl", "hexm"];

var burnArray = ["burna", "burnb", "burnc", "burnd", "burne", "burnf", "burng", "burnh", "burni", "burnj", "burnk", "burnl", "burnm"];

for(var i=0; i < hexArray.length; i++){
    hexSelect.className='transtart ' + burnArray[i];
};

在代码的第一行,您引用的hexArray变量此时为undefined。此时i变量也是undefined

要使代码正常工作,您需要做的就是将第一行代码移到下面for循环的第一行。这有用吗?