显示的代码不完整,无法跟踪。但是我假设NaN先传递给Floor()。将有效的数字/数字字符串传递给floor()以使其工作。错误出现在问题中未显示的代码逻辑中。
编辑:
看你的代码后,很明显,这个问题是由于错位的赋值操作。如果调用'if'部分,一切都很好,但如果调用'else'部分,则不会创建或分配值,导致它为NaN。要解决这个问题,我建议这样做:
更改此:
if(document.getElementById("div").style.top === "40px"){
var num = Math.floor(document.getElementById("num").innerHTML);
document.getElementById("num").innerHTML = num+1;
}
else{
document.getElementById("num").innerHTML = num-1;
}
要这样:
var num = Math.floor(document.getElementById("num").innerHTML);
if(document.getElementById("div").style.top === "40px"){
document.getElementById("num").innerHTML = num+1;
}
else{
document.getElementById("num").innerHTML = num-1;
}
来源
2013-10-18 17:46:28
Hec
因为'innerHTML'是NaN。 –
如果你要发布代码,它应该是有效的代码... if在哪里? $从哪里来? – epascarello
你可以在那里抛出一些'console.log'语句来看看你得到了什么,因为你在做什么没有什么内在的错误。我会这样做:'var elt = document.getElementById('num'); console.log(elt); var numStr = elt.innerHTML; console.log(numStr);'。那么答案应该变得清楚。 –