JS——实现简单计算器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    table{
        width: 800px;
        height: 700px;
        margin: auto;
        background-color: rgb(250, 247, 244);
        text-align: center;
        /* 合并边框 */
        border-collapse: collapse;
        font-weight: bolder;
        font-size: 25px;
        padding: 10px;
        border: 1px solid rgb(194, 190, 190);
    }
    td{
        border: 1px solid rgb(194, 190, 190);
    }
    .fuhao{
        color: chocolate;
    }
    .tr1{
        height: 50px;
    }
    .tr2{
        height: 150px;
    }
    tr{
        height: 100px;
    }
    
    #td{
        background-color: rgb(230, 227, 227);
    }
    #content{
       padding-right: 10px;
       text-align: right;
    }
    #head{
        text-align: right;
        padding-right: 10px;
        font-size: 20px;
    }
</style>
<body>
    <table>
    <thead>
        <tr class="tr1" >
            <!-- colspan:合并单元格 -->
            <td colspan="4" id="head"></td>
            
        </tr>
        <tr class="tr2">
            <td colspan="4" id="content"></td>
            
        </tr>
    </thead>
    <tbody>
        <tr>
            <td class="fuhao" id="td">(</td>
            <td class="fuhao" id="td">)</td>
            <td class="fuhao" id="td">%</td>
            <td id="td">C</td>
        </tr>
        <tr>
            <td>7</td>
            <td>8</td>
            <td>9</td>
            <td class="fuhao" id="td">&divide;</td>
        </tr>
        <tr>
            <td>4</td>
            <td>5</td>
            <td>6</td>
            <td class="fuhao" id="td">&times;</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td class="fuhao" id="td">-</td>
        </tr>
        <tr>
            <td>0</td>
            <td class="fuhao" id="td">.</td>
            <td class="fuhao" id="td">=</td>
            <td class="fuhao" id="td">+</td>
        </tr>
    </tbody>
    </table>
    <script>
        let tbody_dom=document.querySelector('tbody')
        let content_dom=document.querySelector('#content')
        let head_dom=document.querySelector('#head')
        tbody_dom.addEventListener('click',function(event){
            //获取被点击td的内容
           let td_dom= event.target//获取鼠标点击的目标
           let value=td_dom.innerText
           //内容框先输入的内容
           let orginValue=content_dom.innerText
           //先输入的拼接上后输入的
           content_dom.innerText= orginValue+value
           
            //点击等号在head框呈现内容框的内容,内容框中呈现计算结果
            if(value=='='){
                head_dom.innerText=orginValue+value
                //在内容框呈现结果
                orginValue=orginValue.replaceAll('×','*')
                orginValue=orginValue.replaceAll('÷','/')
                //核心是eval()函数
                content_dom.innerText=eval(orginValue)
                return;
            }
            
           //点击C全部清空
           if(value.trim()=='C'){
                content_dom.innerText=''
                head_dom.innerText=''
                return;
            }        
        },false)
    </script>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值