Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两行几乎相同的代码,结果却不同?_Javascript_Html_Arrays - Fatal编程技术网

Javascript 两行几乎相同的代码,结果却不同?

Javascript 两行几乎相同的代码,结果却不同?,javascript,html,arrays,Javascript,Html,Arrays,我正在学习如何为web开发编写代码,我遇到了一个问题。两行几乎相同的代码给出了不同的结果: for(i=0; i<=lunarSpells.length; i++){ document.getElementById(lunarSpells[i]).innerHTML = Math.ceil(xpLeft/document.getElementById(lunarSpells[i]+"XP").innerHTML); } for(i=0; i<=standardS

我正在学习如何为web开发编写代码,我遇到了一个问题。两行几乎相同的代码给出了不同的结果:

for(i=0; i<=lunarSpells.length; i++){
    document.getElementById(lunarSpells[i]).innerHTML =
    Math.ceil(xpLeft/document.getElementById(lunarSpells[i]+"XP").innerHTML);   
}
for(i=0; i<=standardSpells.length; i++){
    document.getElementById(standardSpells[i]).innerHTML =
    Math.ceil(xpLeft/document.getElementById(standardSpells[i]+"XP").innerHTML);    
}
所以我的问题是,为什么lunarspells变量有效,而StandardSpills变量无效?非常感谢您的帮助,因为我对HTML和JS还很陌生。

如前所述:

xpLeft/document.getElementById(lunarSpells[i]+"XP").innerHTML
如果
document,则将失败。getElementById(“不存在的id”)
计算结果为
null
(如
null。任何
都是错误

这将停止
块中的所有进一步处理,除非您避免了错误,或者使用
try
/
catch


因此,您的第二个循环将无法到达/执行。

要显示的任何错误?另外,您希望使用
预期和实际结果是什么?什么是/不工作?在这个上下文中,什么是
工作的
不工作的
?如果
document.getElementById
找不到元素,它将返回
null
,并且您无法获得/对它进行设置-它将异常失败。你确定每个
id
s都有元素吗?啊哈!虽然这没有直接解决问题,但它确实指出了我的错误方向。我不小心在第一个数组中放入了两个相同的元素,丢弃了.length部分。更改
xpLeft/document.getElementById(lunarSpells[i]+"XP").innerHTML