顯示的代碼不完整,無法跟蹤。但是我假設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);'。那麼答案應該變得清楚。 –