使用 console.log 检查时获取 Nan 输出
Posted
技术标签:
【中文标题】使用 console.log 检查时获取 Nan 输出【英文标题】:Getting Nan output when using console.log to check 【发布时间】:2021-05-24 04:18:54 【问题描述】:我不确定为什么在控制台上出现 NaN 错误。 span id=" score" 的默认值为 0,尽管已将其转换为数字,但点不会更新。基本上,这是一个数字游戏,其中有 3 个盒子,具有不同的 id。 Onclick,它会检查用户选择的输入,并检查数字是否相同,如果符合则获得 3 分,如果错误则减 2 分。
示例:
function checkAnswer()
var scoredPoints = document.getElementById("score");
var updatedScore = Number(scoredPoints.value);
var finalScore;
var answer = document.getElementById("listofOptions");
var check = Number(answer.value);
var numberOne = document.getElementById("one");
var numberTwo = document.getElementById("two");
var numberThree = document.getElementById("three");
var check1 = Number(numberOne.value);
var check2 = Number(numberTwo.value);
var check3 = Number(numberThree.value);
if(check == check1 || check == check2 || check == check3)
finalScore = updatedScore + 3;
scoredPoints.innerhtml=finalScore;
console.log(finalScore);
else
finalScore = updatedScore - 2;
scoredPoints.innerHTML=finalScore;
console.log(finalScore);
scoredPoints.value = finalScore;
【问题讨论】:
我们能看到 HTML 吗? 代码看起来不错,问题一定出在您的 HTML 上。还可以尝试减少变量声明。 您是否在函数的第二行获得任何值,即“updatedScore”? 0 这部分是我的分数。我得到了 nan for updatedScore ,刚刚做了 console.log 。在您发表的评论中
<span style="color:red" id="score"><font size="8"><b>0</b></font></span>
下面的代码会给你 NaN 因为 span 元素没有 value 属性
var scoredPoints = document.getElementById("score");
var updatedScore = Number(scoredPoints.value);
为了获得值 0,即 span 内的文本,需要以下内容。
var updatedScore = Number(scoredPoints.textContent);
注意:value 已替换为 textContent。
如果您仍然有 NaN,您可能必须通过将 .value 替换为 .textContent 来对以下代码执行相同的操作。如果是这种情况,我无法判断是否缺少 HTML。
var check1 = Number(numberOne.value);
var check2 = Number(numberTwo.value);
var check3 = Number(numberThree.value);
【讨论】:
感谢!不过我已经解决了!!再次感谢!以上是关于使用 console.log 检查时获取 Nan 输出的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我尝试将字符串重复指定次数时,Javascript console.log 结果为 NaN