js案例

807 阅读2分钟

实现简易计算器

<!DOCTYPE html><html lang="zh-cn"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>简易计算器</title>    <style>        body{            background-color:#eee;        }        #calculator{            margin:100px 0 0 200px;        }    </style></head><body>    <div id="calculator">        <p>            <input type="text" class="former-input" value="1">            <span class="sign">+</span>            <input type="text" class="later-input" value="1">            <span>=</span>            <span class="result-output">2</span>        </p>        <!-- <input type="button" value="+" onclick="addHandler();"/>        <input type="button" value="-" onclick="subtractHandler();"/>        <input type="button" value="x" onclick="multiplyHandler();"/>        <input type="button" value="÷" onclick="divideHandler();"/> -->        <input class="btn" type="button" value="+" title="add" />        <input class="btn" type="button" value="-" title="subtract" />        <input class="btn" type="button" value="x" title="multiply" />        <input class="btn" type="button" value="÷" title="divide" />    </div>    <script>        //获取元素;querySelector()获取指定元素;querySelectorAll()获取所有元素;        // var calculator = document.querySelector('#calculator');        // var formerInput = calculator.querySelector('.former-input');        // var laterInput = calculator.querySelector('.later-input');        // var sign = calculator.querySelector('.sign');        // var resultOutput = calculator.querySelector('.result-output');        // //加,输入框中的值默认为字符串,在前面加入“+”号,强制转换为数字;        // function addHandler() {        //     sign.innerHTML = '+';        //     resultOutput = +formerInput.value + +laterInput.value;        // }        // //减        // function subtractHandler() {        // sign.innerHTML = '-';        // resultOutput = formerInput.value - laterInput.value;        // }        // //减        // function multiplyHandler() {        // sign.innerHTML = 'x';        // resultOutput = formerInput.value * laterInput.value;        // }        // //减        // function divideHandler() {        // sign.innerHTML = '÷';        // resultOutput = formerInput.value / laterInput.value;        // }            //第一次改进        // var calculator = document.querySelector('#calculator');        // var formerInput = calculator.querySelector('.former-input');        // var laterInput = calculator.querySelector('.later-input');        // var sign = calculator.querySelector('.sign');        // var resultOutput = calculator.querySelector('.result-output');        // var btns = calculator.querySelectorAll('.btn');        // btns[0].onclick = addHandler;        // btns[1].onclick = subtractHandler;        // btns[2].onclick = multiplyHandler;        // btns[3].onclick = divideHandler;        // function addHandler() {        // sign.innerHTML = '+';        // resultOutput = +formerInput.value + +laterInput.value;        // }        // //减        // function subtractHandler() {        // sign.innerHTML = '-';        // resultOutput = formerInput.value - laterInput.value;        // }        // //减        // function multiplyHandler() {        // sign.innerHTML = 'x';        // resultOutput = formerInput.value * laterInput.value;        // }        // //减        // function divideHandler() {        // sign.innerHTML = '÷';        // resultOutput = formerInput.value / laterInput.value;        // }        //第二次改写        // var calculator = document.querySelector('#calculator');        // var formerInput = calculator.querySelector('.former-input');        // var laterInput = calculator.querySelector('.later-input');        // var sign = calculator.querySelector('.sign');        // var resultOutput = calculator.querySelector('.result-output');        // var btns = calculator.querySelectorAll('.btn');        // //绑定事件        // for(var i = 0;i<btns.length;i++){        //     btns[i].onclick = function(){        //         switch (this.title) {        //             case 'add':        //                 addHandler();        //                 break;        //             case 'subtract':        //                 subtractHandler();        //                 break;        //             case 'multiply':        //                 multiplyHandler();        //                 break;        //             case 'divide':        //                 divideHandler();        //                 break;                                //         }        //     };        // }        // // btns[0].onclick = addHandler;        // // btns[1].onclick = subtractHandler;        // // btns[2].onclick = multiplyHandler;        // // btns[3].onclick = divideHandler;        // function addHandler() {        // sign.innerHTML = '+';        // resultOutput = +formerInput.value + +laterInput.value;        // }        // //减        // function subtractHandler() {        // sign.innerHTML = '-';        // resultOutput = formerInput.value - laterInput.value;        // }        // //减        // function multiplyHandler() {        // sign.innerHTML = 'x';        // resultOutput = formerInput.value * laterInput.value;        // }        // //减        // function divideHandler() {        // sign.innerHTML = '÷';        // resultOutput = formerInput.value / laterInput.value;        // }        //第三次修改--提取元素        var calculator = document.querySelector('#calculator');        var formerInput = calculator.querySelector('.former-input');        var laterInput = calculator.querySelector('.later-input');        var sign = calculator.querySelector('.sign');        var resultOutput = calculator.querySelector('.result-output');        var btns = calculator.querySelectorAll('.btn');        //回调函数        each(btns,function(index,elem){            for(var i = 0;i<btns.length;i++){ btns[i].onclick=function(){ switch (this.title) { case 'add' :                addHandler(); break; case 'subtract' : subtractHandler(); break; case 'multiply' : multiplyHandler();                break; case 'divide' : divideHandler(); break; } }; }        })        //绑定事件                //遍历        function each(array,fn){            for(var i = 0;i<array.length;i++){                fn(i,array[i]);            }        }         //更新符号         function updateSign(symbol) {            sign.innerHTML = symbol;         }        function addHandler() {        updateSign('+');        resultOutput.innerHTML = add(+formerInput.value + +laterInput.value);        }        //减        function subtractHandler() {        updateSign('-');        resultOutput.innerHTML = subtract(formerInput.value - laterInput.value);        }        //减        function multiplyHandler() {        updateSign('*');        resultOutput.innerHTML = multiply(formerInput.value * laterInput.value);        }        //减        function divideHandler() {        updateSign('/');;        resultOutput.innerHTML = divide(formerInput.value / laterInput.value);        }    </script></body></html>