原生JS實現簡易計算器


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>簡易計算器</title>
<style>
    #div{
        width: 300px;
        height: 500px;
        background: #ccc;
        margin: auto;
        border: 1px solid red;
    }
    table{
        width: 97%;
        height: 480px;
        border: 1;
        align:center;
        cellspacing:"10"
    }
    td{
        width: 26%;
        height: auto;
        border: 1px solid red;
        text-align: center;
        font-weight: bold;
        color: blue;
    }
</style>
<script>
    var tds = null;   //定義一個空的全局對象
    var jg = null,
        dy = null,
        tg = null;
    window.onload = function(){   //因為以后都是外部引用JS文件,因為程序加載執行順序的問題,設置一個文檔加載完成后調用方法的事件
        tds = document.getElementsByTagName("td");  //找到所有的對象
        jg = document.getElementById("jg");
        dy = document.getElementById("dy");
        tg = document.getElementById("tg");
        addEvent();   //文檔加載完成后調用這個方法
    }
    function addEvent(){
        for(var i = 0 ;i<tds.length;i++){    //循環下標用來找出所有的單元格
            var zhi = tds[i].getAttribute("id");  //找出帶id屬性的單元格
            if(zhi){   //當本次循環有帶id屬性的
                continue;  //那么跳過本次循環
            }
            tds[i].onclick = function(){   //后給這個單元格添加點擊事件並調用方法
                jg.innerHTML += this.innerHTML;  //此處用到字符串拼接的方法  每點擊一次和上一次的字符串拼接(用來作為下邊的計算)
            } 
        
        }
        //給等於號添加點擊事件
        dy.onclick = function(){ //當點擊等於號的時候
            jg.innerHTML = eval(jg.innerHTML);  //結果顯示在HTML文檔中並賦值(eval()函數會將字符串轉換為JavaScript代碼執行)
        }
        //當點擊退格的時候調用這個函數
        tg.onclick = function(){
            var str = jg.innerHTML;   //找到在結果顯示中的字符串
            jg.innerHTML = str.substr(0,str.length-1); //賦值(substr()這個是字符串方法,用來截取(保留)從0到倒數第二個,也就是當每次點擊的時候會退一格) 
        }
    }
    
</script>
</head>

<body>
<!--在div里面創建一個表格用來作為計算器的按鍵使用-->
<div id="div">  <!--這個id用來設置計算器面板的樣式-->
    <table>
        <tr>
            <td colspan="3" id="jg"></td>   <!--這里作為顯示使用-->
            <td id="tg">退格</td>   <!--加退格功能-->
        </tr>
        <tr>
            <td>7</td>
            <td>8</td>
            <td>9</td>
            <td>/</td>
        </tr>
        <tr>
            <td>4</td>
            <td>5</td>
            <td>6</td>
            <td>+</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>-</td>
        </tr>
        <tr>
            <td>.</td>
            <td>0</td>
            <td id="dy">=</td>  <!--准備給等於號單獨設置點擊事件並調用方法-->
            <td>*</td>
        </tr>
    </table>    
</div>
        

</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM