使用 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 。
【参考方案1】:

在您发表的评论中

<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

将对象传递给 API POST 路由时,Req.body 在服务器 console.log 中返回 NaN: " "

函数isNaN()

ES6 的数值扩展

ES6 数值类型

ES6 数值类型