Javascript 两行几乎相同的代码,结果却不同?
我正在学习如何为web开发编写代码,我遇到了一个问题。两行几乎相同的代码给出了不同的结果: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
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