实现 JavaScript 计算器的多种方案

方法一:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>最 简单计算器 路口师傅</title>
<style>
table,tr,td{
   
  border:1px solid blue;  
}
#ok,.td,#clear,#last{
   
  text-align:center;
}
</style>
</head>
<body>
	
  <table>
    <tr>
    	<td colspan="5" id="show">0</td>
    </tr>
    <tr>
    	<td class="td" id="zero">0</td>
      <td class="td">.</td>
      <td id="last"><</td>
      <td id="clear" colspan="2">c</td>
    </tr>
    <tr>
    	<td class="td">1</td>
      <td class="td">2</td>
      <td class="td">3</td>
      <td class="td">+</td>
      <td class="td">-</td>
    </tr>
    <tr>
    	<td class="td">4</td>
      <td class="td">5</td>
      <td class="td">6</td>
      <td class="td">*</td>
      <td class="td">/</td>
    </tr>
    <tr>
    	<td class="td">7</td>
      <td class="td">8</td>
      <td class="td">9</td>
      <td id="ok" colspan="2">=</td>
    </tr>
  </table>
</body>
</html><script>
var oTd = document.getElementsByClassName("td");
var oK = document.getElementById("ok");
var oShow = document.getElementById("show");
var oClear = document.getElementById("clear");
var run = '';//全局变量 公式

oK.onclick=function(){
   
  if(run!==""){
   
    oShow.innerHTML = eval(run);
  }
  if(oShow.innerHTML!=="0"){
   
    run = show.innerHTML;
  }
}

oClear.onclick=function(){
   
  run = '';
  show.innerHTML = '0';
}

for(var i = 0;i<=oTd.length;i++){
   
  oTd[i].index = i;
  oTd[i].onclick=function(){
   
    //alert(oTd[this.index].innerHTML)
    run += oTd[this.index].innerHTML;
   oShow.innerHTML = run;
  };
}
</script>

方法二:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档标题</title>
<style>
*{
   
        padding:0;
        margin:1px;
    }
    #calculater{
   
        margin: auto;
        margin-top: 30px;
        border: solid 6px #2371D3;
        border-spacing: 0px;
    }
    #display{
   
        width: 100%;
        height: 30px;
        border-bottom: solid 4px #2371D3;
         font-weight: bold;
         color: #193D83;
        font-family: 黑体;
        padding-left: 2px;
    }
    .numberkey{
   
        cursor: pointer;
        width: 40px;
        height: 30px;
        border: solid 1px #FFFFFF;
        background: #2371D3;
        color: #ffffff;
        text-align: center;
        font-weight: bold;
        font-family: 黑体;
    }
    #equality{
   
       cursor: pointer;
       width: 40px; 
       height: 100%;
       background: #2371D3;
        border: solid 1px #FFFFFF;
        color: #ffffff;
        text-align: center;
        font-weight: bold;
        font-family: 黑体; 
    }
    .numberkey:hover{
   
       background: #EA6F30; 
    }
    #equality:hover{
   
       background: #EA6F30; 
    }</style<>
</head>
<body>
<table id="calculater" onClick="calculater()">
        <tr>
            <td id="display" colspan="5">0</td>
        </tr>
        <tr>
            <td class="numberkey" >1</td>
            <td class="numberkey" >2</td>
            <td class="numberkey" >3</td>
            <td class="numberkey" >+</td>
            <td class="numberkey"  id="deletesign">c</td>   
        </tr>
        <tr>
            <td class="numberkey" >4</td>
            <td class="numberkey" >5</td>
            <td class="numberkey" >6</td>
            <td class="numberkey" >-</td>
            <td rowspan="3" id="equality" onclick="resultscalcaulte()">=</td> 
        </tr>
        <tr>
            <td class="numberkey" >7</td>
            <td class="numberkey" >8</td>
            <td class="numberkey" >7</td>
            <td class="numberkey" >*</td>
        </tr>
        <tr >
            <td class="numberkey" >+/-</td>
            <td class="numberkey" >0</td>
            <td class="numberkey" >.</td>
            <td class="numberkey" >/</td>            
        </tr>
</body>
</html>
<script>
var results="";
    var calresults="";
    function calculater(){
   
        if (event.srcElement.innerText=="=") {
   
            return;
        }
       results+=event.srcElement.innerText;
       display.innerText=results
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值