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

Javascript 不知道为什么这个变量不起作用,javascript,arrays,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", "bur

我目前正在使用

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 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”];
对于(变量i=0;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];
};
var hexSelect=document.getElementById(hexArray[i]);
变量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”];
对于(变量i=0;i
它不再起作用了。我不知道为什么。

var hexSelect=document.getElementById(hexArray[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];
};
变量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”]; 对于(变量i=0;i
在代码的第一行中,您引用的是
hexArray
变量,此时该变量为
undefined
。此时的
i
变量也是
未定义的

要使代码正常工作,只需将代码的第一行移动到下面的
for
循环的第一行。这行吗?

看看你的第一行:

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

它不会编译,因为您使用for循环中的i变量。

在第二个示例中,执行
var hexSelect=document.getElementById(hexArray[i])时的
i
是什么?想想看。
i
在执行
hexArray[i]
时还没有定义。应用程序语言的语义对于编程新手来说显然并不明显,这并不奇怪。部分正确。该变量实际上已声明(提升),但还没有值。然而,即使是相反的方式,它仍然不起作用。而且
i
也没有定义。谢谢大家,我做了一些编辑。谷歌搜索“吊装”;)啊,好吧,我想知道这是不是我的数组调用,有什么办法可以解决这个问题吗?@JSArrakis:没有。由于要获取的元素取决于当前迭代,因此必须将该函数调用放入循环中,就像您的第一个代码一样。@Felix Kling:ah bummer,我希望尽可能减少我的代码。现在感觉有点。。。比它需要的大。注意,我展示的部分并不是全部。