前言:初学js,老师要求做一个简易计算器,目前只实现了能够计算,很多约束没有有做,待完善。仅作为自己的学习记录。

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>简易计算器</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<script src="js/calculator.js" type="text/javascript"></script>
</head>
<body>
<!--计算器-->
<div class="calculator" id="calculator">
    <div class="cal_topBar">.....</div>
    <div class="cal_header" >
      <!--设置窗口,使用onfocus="this.blur();"避免键盘输入-->
      <input type="text" value="0" class="res_box" onFocus="this.blur()" id="result"/>
      </div>
    
    <!--设置按钮-->
    <div class="cal_body" id="calcu-btn">
        <div style="height:1px;"></div>
        <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td><a href="#" class="w_1 operator" onClick="command(NaN)">mc</a></td>
                <td><a href="#" class="w_1 operator" onClick="command(NaN)">m+</a></td>
                <td><a href="#" class="w_1 operator" onClick="command(NaN)">m-</a></td>
                <td><a href="#" class="w_1 operator" onClick="command(NaN)">mr</a></td>
            </tr>
            <tr>
              <td><a href="#" class="w_1" onClick="command('C')">C</a></td>
              <td><a href="#" class="w_1" onClick="command(1)">&plusmn;</a></td>
              <td><a href="#" class="w_1" onClick="command('÷')">&divide;</a></td>
              <td><a href="#" class="w_1" onClick="command('x')">&times;</a></td>
              </tr>
            <tr>
                <td><a href="#" class="w_1" onClick="command(7)">7</a></td>
                <td><a href="#" class="w_1" onClick="command(8)">8</a></td>
                <td><a href="#" class="w_1" onClick="command(9)">9</a></td>
                <td><a href="#" class="w_1" onClick="command('-')">-</a></td>
            </tr>
            <tr>
                <td><a href="#" class="w_1" onClick="command(4)">4</a></td>
                <td><a href="#" class="w_1" onClick="command(5)">5</a></td>
                <td><a href="#" class="w_1" onClick="command(6)">6</a></td>
                <td><a href="#" class="w_1" onClick="command('+')">+</a></td>
            </tr>
            <tr>
                <td><a href="#" class="w_1" onClick="command(1)">1</a></td>
                <td><a href="#" class="w_1" onClick="command(2)">2</a></td>
                <td><a href="#" class="w_1" onClick="command(3)">3</a></td>
                 <td rowspan="2">
                    <a href="#" class="w_3 etc" onClick="calc()">=</a>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <a href="#" class="w_2 zero" onClick="command(0)">0</a>
                </td>
                <td><a href="#" class="w_1 spot" onClick="command('.')">.</a></td>
            </tr>
        </table>
    </div>
</div>
<script type="text/javascript">
//获取当前显示数据
function command(v){
    var res=document.getElementById("result").value;//获取当前显示的数据
    if(v=='C'){
        
        document.getElementById("result").value=0;//如果当前数值等于C则,显示为0
        
        }else if(res==0)
    {
        
        document.getElementById("result").value=v;//如果当前数值等于0,则不变
        }else{
        
            document.getElementById("result").value+=v;//否则给当前值追加
            }
    
    }
    //利用索引得到运算符位置
    function reindex(str)
        {
            if(str.indexOf('x')!=-1){
                return str.indexOf('x');
            }else if(str.indexOf('÷')!=-1){
                return str.indexOf('÷');
                }else if(str.indexOf('+')!=-1){
                    return str.indexOf('+');
                    }else if(str.indexOf('-')!=-1){
                    return str.indexOf('-');
                    }
        }
    
    //计算结果
    function calc(){
        var str= document.getElementById("result").value;
        var index=reindex(str);
        var num1=parseFloat(str.substr(0,index));
        var    num2=parseFloat(str.substr(index+1));
        
        if(str.indexOf('x')!=-1)
        {
            //乘法计算
            document.getElementById("result").value=num1*num2; 
            //alert();
            }else if(str.indexOf('÷')!=-1){
                  //除法计算
                document.getElementById("result").value=num1/num2; 
                }else if(str.indexOf('+')!=-1){
                  //加法计算
                document.getElementById("result").value=num1+num2;
                }else if(str.indexOf('-')!=-1){
                  //减法计算
                document.getElementById("result").value=num1-num2;
                }
            
        
        }
        
</script>
</body>
</html>

李肉肉
3 声望0 粉丝