1.获取页面输入控件的值,按钮和结果占位符
2.给按钮添加单击事件,提交后就开始执行计算
3.初始化数据后,判断输入内容是否为空,否则开始判断是否为空或是否为数字,该条件判断是’或‘,只要有一个满足就执行代码块
4.判断当前选择的操作符,把结果相加后,符合条件就执行相应的代码块,最后把结果渲染到页面
实例
<!DOCTYPE html> <html lang="en"> <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>小型计算器(示例重点使用到onclick事件与switch流程控制语句)2019.05.10</title> <style type="text/css"> .box { width: 500px; height: 200px; background-color: #efefef; border: 1px solid lightgray; text-align: center; margin: 20px auto; color: #636363; border-radius: 15px; box-shadow: 2px 2px 2px #999; } table { margin: auto; /*参考线*/ /*border: 1px solid red; */ } td { width: 100px; height: 30px; padding: 5px 10px; } input, select { width: 100%; height:100%; border:none; text-align: left; padding-left: 15px; /*background-color: cyan;*/ } button { width: 100%; height: 100%; border: none; background-color: skyblue; color: white; } button:hover { cursor: pointer; background-color: coral; width: 105%; height: 105%; } </style> </head> <body> <div class="box"> <h2>计算器</h2> <form> <table> <tr> <td><input type="text" name="opt1" placeholder="操作数1" autofocus></td> <td> <select name="option"> <option value="null">请选择操作</option> <option value="add"> + </option> <option value="sub"> - </option> <option value="mul"> * </option> <option value="div"> / </option> </select> </td> <td><input type="text" name="opt2" placeholder="操作数2"></td> <td><button type="button">计算</button></td> </tr> <tr> <td colspan="2" align="right"><h3>结果:</h3></td> <td colspan="2" align="left"><h3 id="result"></h3></td> </tr> </table> </form> </div> <script> //1.获取基本元素 var opt1 = document.getElementsByName('opt1')[0]; var opt2 = document.getElementsByName('opt2')[0]; var opt = document.getElementsByName('option')[0]; var but = document.getElementsByTagName('button')[0]; var result = document.getElementById('result'); //2.给按钮添加单击事件,计算就执行单击事件运算 but.onclick = function(){ //初始化数据 var data1 = 0; var data2 = 0; if(opt1.value.length === 0){ alert('第一个操作数不能为空'); opt1.focus(); return false; }else if(isNaN(opt1.value)){ alert('第一个操作数必须为数字'); opt1.focus(); return false; }else if(opt2.value.length === 0){ alert('第二个操作数不能为空'); opt2.focus(); return false; }else if(isNaN(opt2.value)){ alert('第二个操作必须为数字'); opt2.focus(); return false; }else{ data1 = parseFloat(opt1.value); data2 = parseFloat(opt2.value); } var option = opt.value; var temp = 0; var flag = ''; switch(option){ case 'null': alert('请选择操作类型'); opt.focus(); return false; case 'add': flag = '+'; temp = data1 + data2; break; case 'sub': flag = '-'; temp = data1 - data2; break; case 'mul': flag = '*'; temp = data1 * data2; break; case 'div': flag = '/'; if(data2 === 0){ alert('除数不能为0,请重新输入'); opt2.focus(); return false; }else{ temp = data1 / data2; //保留两位小数 temp = Math.round(temp * 100) / 100; } break; } var str = '<span style="color:coral">'; str += data1 + ' ' + flag + data2 + ' = ' + temp; str += '</span>'; result.innerHTML = str; }; </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例