Charles_Andrew 2021-12-03 14:23 采纳率: 76.1%
浏览 126
已结题

Javascript中输出一直是NAN


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>计算器</title>
        <style>
            .cal{
                width: 300px;
                height: 400px;
                border: 3px solid black;
                margin: 10% auto;
                padding: 10px;
                box-shadow: 5px 5px 3px gray;
            }
            .display{
                height: 40px;
                border: 3px solid black;
                text-align: right;
                font-size: 25px;
                line-height: 40px;
            }
            .kb{
                width: 299px;
                height: 340px;
                border: 3px solid black;
                margin-top: 10px;
            }
            .num,.op{
                width: 60px;
                height: 70px;
                border: 1px solid black;
                float: left;
                margin: 6px;
                font-size: 30px;
                text-align: center;
                line-height: 65px;
                cursor: pointer;
                border-radius: 30px;
                box-shadow: 2px 2px 2px gray;
                text-shadow: silver;
            }
            .num{
                background-color: black;
                color: white;
            }
            .num:hover{
                background-color: gray;
                color: white;
            }
            .op{
                background-color: red;
            }
            .op:hover{
                background-color: red;
                color: white;
            }
        </style>
        <script>
            var first=0,/*第一个数字*/second=0/*第二个数字*/,one=0;/*判断运算符*/;
            var chooce=1;//判断是第哪个运算符
            var judge=0;//判断是否是仅更换运算符
            var Judge=1;//判断是否是第一个数字
            function input(obj){
                obj=Number(obj);
                judge=0;
                if(chooce%2==1){
                    if(Judge%2==1){
                        first=obj;
                        Judge++;
                    }else{
                        first=first*10+obj;
                    }
                    document.getElementById("d").innerText=first;
                }else{
                    second=second*10+obj;
                    document.getElementById("d").innerText=second;
                }
            }

            function add(){
                one=1;
                if(judge==0){
                    judge==1;
                }
                document.getElementById("d").innerText=null;
            }

            function reduce(){
                one=2;
                document.getElementById("d").innerText=null;
            }

            function take(){
                one=3;
                document.getElementById("d").innerText=null;
            }

            function divide(){
                one=4;
                document.getElementById("d").innerText=null;
            }

            function sum(){
                var sum;
                switch (one){
                    case 1:
                        sum=first+second;
                        break;
                    case 2:
                        sum=first-second;
                        break;
                    case 3:
                        sum=first*second;
                        break;
                    case 4:
                        sum=first/second;
                        break;
                }
                document.getElementById("d").innerText=sum.innerText;
            }
        </script>
    </head>
    <body>
        <div class="cal">
        <div class="display" id="d">0.</div>
        <div class="kb">
            <div class="num" onclick="input(this)">7</div>
            <div class="num" onclick="input(this)">8</div>
            <div class="num" onclick="input(this)">9</div>
            <div class="op" onclick="add()">+</div>
            <div class="num" onclick="input(this)">4</div>
            <div class="num" onclick="input(this)">5</div>
            <div class="num" onclick="input(this)">6</div>
            <div class="op" onclick="reduce()">-</div>
            <div class="num" onclick="input(this)">1</div>
            <div class="num" onclick="input(this)">2</div>
            <div class="num"  onclick="input(this)">3</div>
            <div class="op" onclick="take()">×</div>
            <div class="op" onclick="input(this)">.</div>
            <div class="num" onclick="input(this)">0</div>
            <div class="op" onclick="divide()">÷</div>
            <div class="op" onclick="sum()">=</div>
        </div>
        </div>
    </body>
</html>

img


img


想实现一个计算机在指定的窗口输出值,但一直输出是NAN,大家能帮我看看吗?

  • 写回答

6条回答 默认 最新

  • 曦陽惜夏 2021-12-03 16:28
    关注

    传入的this为当前对想的html代码,要获取里面的值才能获取数据

    obj = Number(obj.innerText);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 修改了问题 12月3日
  • 创建了问题 12月3日

悬赏问题

  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀