[英]Getting NaN when attempting to increment score
我正在尝试对以下代码进行故障排除:
function getStuff(){
document.querySelector('#tuna').onclick=scorefunc;
}
function scorefunc() {
var scorep;
scorep = scorep + 1;
document.getElementById("scorez").innerHTML = "You have found me: " + scorep + " times";
}
基本上,当用户单击带有 id tuna 的段落元素 (p) 时, scorefunc 运行。 每次点击时,我都试图在分数上加 1,但它说“你找到了我 NaN 次”
如果这是错误的,我的 HTML 代码如下所示:
<p id ="scorez">You have found me: </p>
提前致谢 :)
问题是scorep
是undefined
。 您声明它(即var scorep
),但您从未定义它,因此您实际上是在尝试将undefined
和1
相加,这当然会产生NaN
。
将您的声明更改为var scorep = 0
以解决问题。
此外,如果您希望每次单击p
元素时scorep
递增 1,您将不得不创建一个闭包或在本地范围之外声明变量。
var scorep = 0
function scorefunc() {
scorep += 1
document.getElementById("scorez").innerHTML = `You have found me: ${scorep} times`
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.