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,我希望尽可能减少我的代码。现在感觉有点。。。比它需要的大。注意,我展示的部分并不是全部。