批改狀態(tài):未批改
老師批語:
1)JS計算器案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>計算器</title> <style> .box { width: 500px; height: 200px; background-color: #efefef; border: 1px solid lightgrey; 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; } button { width: 100%; height: 100%; border: none; background-color: lightgreen; color: white; } button:hover { cursor: pointer; background-color: coral; width: 110%; height: 110%; } </style> </head> <body> <div class="box"> <h2>計算器</h2> <form> <table> <tr> <td><input type="text" name="opt1" placeholder="操作數(shù)1"></td> <td> <select name="option" id=""> <option value="null">請選擇操作</option> <option value="add">+</option> <option value="sub">-</option> <option value="mul">*</option> <option value="div">/</option> <option value="pow">^</option> </select> </td> <td><input type="text" name="opt2" placeholder="操作數(shù)2"></td> <td><button type="button">計算</button></td> </tr> <tr> <td align="right" colspan="2"><h3>結(jié)果:</h3></td> <td align="left" colspan="2"><h3 id="result"></h3></td> </tr> </table> </form> </div> <script> //1. 獲取操作數(shù),按鈕,結(jié)果占位符 let opt1 = document.getElementsByName('opt1')[0]; let opt2 = document.getElementsByName('opt2')[0]; let opt = document.getElementsByName('option')[0]; let btn = document.getElementsByTagName('button')[0]; let result = document.getElementById('result'); //2. 給按鈕添加事件,進行計算 btn.onclick = function () { //操作數(shù)初始化 let data1 = 0; let data2 = 0; if (opt1.value.length === 0) { alert('第一個操作數(shù)不能為空'); opt1.focus(); return false; } else if (isNaN(opt1.value)) { alert('第一個操作數(shù)必須為數(shù)字'); opt1.focus(); return false; } else if (opt2.value.length === 0) { alert('第二個操作數(shù)不能為空'); opt2.focus(); return false; } else if (isNaN(opt2.value)) { alert('第二個操作數(shù)必須為數(shù)字'); opt2.focus(); return false; } else { data1 = parseFloat(opt1.value); data2 = parseFloat(opt2.value); } //對操作符進行處理 let option = opt.value; // 拿到了用戶選擇的操作 let temp = 0; let 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 = '/'; //進行除數(shù)不能為零的判斷和處理 if (data2 === 0) { alert('除數(shù)不能為零'); opt2.focus(); opt2.value = ''; return false; } else { temp = data1 / data2; // 四舍五入,僅保留二位小數(shù) temp = Math.round(temp * 100) / 100; } break; case 'pow': flag = '^'; //進行次方數(shù)不能為零的判斷和處理 if (data2 === 0) { alert('次方不能為零'); opt2.focus(); opt2.value = ''; return false; } else { temp = Math.pow(data1,data2); } break; } let str = '<span style="color:coral">'; str += data1 + ' ' +flag + ' ' + data2 + ' = ' +temp; str += '</span>'; result.innerHTML = str; } </script> </body> </html>
點擊 "運行實例" 按鈕查看在線實例
運行效果圖:
總結(jié):JS的計算器案例根據(jù)老師課堂的例子增加了n次方的功能,通過案例學(xué)習(xí)對DOM的認識有增加了。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號