我正在尝试解决以下代码:

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>


提前致谢 :)

最佳答案

问题是scorepundefined。您声明了它(即var scorep),但从未定义它,因此您实际上是在尝试将undefined1加在一起,当然会产生NaN

将声明更改为var scorep = 0即可解决此问题。

此外,如果希望每次单击scorep元素时p加1,则必须创建closure或在局部范围之外声明变量。

var scorep = 0
function scorefunc() {
  scorep += 1
  document.getElementById("scorez").innerHTML = `You have found me: ${scorep} times`
}

关于javascript - 尝试增加分数时获得NaN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60142387/

10-12 02:08