JQ實現計算器功能

  • 2019 年 12 月 27 日
  • 筆記

下面是計算器的實現方法,主要是使用了JQ,設計原型依據小米手機計算器,實現了基礎的單步驟運算,做了簡單的校驗判斷,實現了加減乘除取余等功能;

實現效果如下圖:

下面是程式碼:

<!DOCTYPE html>  <html>  	<head>  		<meta charset="UTF-8">  		<title>計算器</title>  		<style>  			td{  				width: 50px;  				height: 50px;  				line-height: 50px;  				text-align: center;  				border:solid 1px #999;  				cursor: pointer;  			}  			td:hover{  				border:solid 1px #005ca9;  			}  			#res{  				height: 55px;  				width: 223px;  				border: solid 1px #999;  				outline: none;  				cursor: not-allowed;  				word-wrap: break-word;  			}  		</style>  	</head>  	<body>  		<div id="res"></div>  		<table>  			<tbody>  				<tr>  					<td>AC</td>  					<td>刪除</td>  					<td>%</td>  					<td>/</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>.</td>  					<td>=</td>  				</tr>  			</tbody>  		</table>  		<script src="jquery.min.js"></script>  		<script>  			//計算時間  			$("td").click(function(){  				var res = 0;  				//獲取值  				var v = $(this).text();  				if(!v){  					return true;  				}  				var nowVal = $("#res").text();  				//計算一次後需要重置  				if(nowVal.indexOf('=') > 0){  					console.log("重新計算");  					$("#res").html('');  				}  				//如果字元串以 符號 開頭需提醒  				var mark = ['+','-','*','/','%'];  				if(mark.indexOf(v) > -1 && v.length == 1 && nowVal.length == 0){  					alert("請先輸入分母");  					$("#res").html('');  					return false;  				}  				//如果字元串以  .  開頭需提醒  				if(v == '.' && v.length == 1 && nowVal.length == 0){  					alert("請先輸入正確數字");  					$("#res").html('');  					return false;  				}  				switch(v){  					case 'AC':  						console.log("全清");  						$("#res").html('');  					break;  					case '=':  						console.log("等於");  						$("#res").append('='+eval(nowVal));  					break;  					case  '刪除':  						console.log("刪除");  						$("#res").html(nowVal.substr(0,nowVal.length-1));  					break;  					default:  						console.log("寫入");  						$("#res").append(v);  				}  			});  		</script>  	</body>  </html>