简单的js实现的计算器

由于比较简单,直接贴代码...

<!DOCTYPE html>
<html>
    <head>
	    <script src="js/jquery-1.11.1.js"></script>
	    <script>
		    //定义两个数字变量,用来保存两个操作的数字
			var number1 = 0;
			var number2 = 0; 
			
			//定义两个数字字符串,用来保存没一次保存的值
			var numberStr1 = "";
			var numberStr2 = "";
		    
			//定义一个字符串,用来表示操作符
			var caculator = "";
			
			//定义一个字符串,用来表示整个表达式
			var result = "";
			
			//标识符,当flag = false 代表添加第一个操作数字,当flag = true 代表添加第二个操作数字
			var flag = false;
			$(function(){
			    //为每个数字绑定监听事件
				$(".number").click(function(){
				    $("#result").html("");  //清空表达式内容
					
					//添加操作数字
					if(!flag)
					    addNumber1($(this).val());
					else
					    addNumber2($(this).val());
				});
				
				//为 / * - + = 绑定事件
				$(".caculator").click(function(){
				    if(result == null || result == "") {
					    alert("请添加第一个操作数,否则无法添加操作符");
						return;
					}
					
					
					var caculator = $(this).val();
					
					if(flag && caculator != "=") return;  //因为添加了第二个操作数字了,所以这里直接返回
					
					//添加第一个操作数,并且添加了操作符之后,那么记录下标识符,然后按下数字就添加第二个操作数
					flag = true;
					
					//区分要进行的操作,然后在结果的表达式中,添加操作符
					if(caculator == "+"){
					    addCaculator("+");
					}else if(caculator == "/"){
					    addCaculator("/");
					}else if(caculator == "*"){
					    addCaculator("*");
					}else if(caculator == "-"){
					    addCaculator("-");
					}else if(caculator == "="){
					    //这里执行计算结果
						caculate();
					}
				});
				
				//添加第一个操作数
				function addNumber1(num){
				    //使用连接符 + 会在最前面多了一个0,所以这里去掉第一个0
                    if(number1 == 0){
					    number1 = num;
					}else{
                        number1 += num;
					}					
					
					$("#result").html(number1);
					result = number1;  //记录表达式的第一个操作数值
				}
				
				//添加第二个操作数
				function addNumber2(num){
				    if(number2 == 0){
					    number2 = num;
					}else{
                        number2 += num;
					}					
					result = result + " " + number2;
					$("#result").html(result);
				}
				
				//添加操作符
				function addCaculator(cal){
				    caculator = cal;
					result = result + " " + caculator
					$("#result").html(result);
					
				}
				
				//当点击 = 号的时候,计算操作结果
				function caculate(){
				    var temp;  
					if(caculator == "+"){
					    //由于字符串的 + 操作不会自动转换,所以这里手动转换
						temp = parseInt(number1) + parseInt(number2);
					}else if(caculator == "/"){
					    if(number2 == "0"){
						    alert("对不起,除数不能为0");
							$("#result").html("");
							clear();
							return;
						}
					    temp = number1 / number2;
					}else if(caculator == "*"){
					    temp = number1 * number2;
					}else if(caculator == "-"){
					    temp = number1 - number2;
					}
					
					$("#result").html(result + " = " + temp);
					
					clear();
				}
				
				//清空数据
				function clear(){
				    number1 = 0;
					number2 = 0;
					result = "";
					caculator = "";
					flag = false;
				}
			});
		</script>
		
	    <title>这是骆宏的计算器</title>
		
		<style>
		    body, ul, h1, h2, h3, h4, h5, li, ol, span, p, div{
			    border:0;
				margin:0;
			}
			
			button{
			    display:inline-block;
			    width:70px;
			}
			
			#caculator{
			    background:grey;
				width:450px;
				margin:0 auto;
			}
			
			#result_container{
				width:450px;
				margin:0 auto;
			}
			
			#result{
			    border:1px solid black;
				height:60px;
			}
		</style>
	</head>
	
	<body>
	    <div id="caculator_container">
		
		    <h1 align="center">该计算器只支持最基本的运算,也就是 1 + 2 = 3 这种类型的运算</h1>
		    <br>
			<br>
			<br>
			<div id="result_container">
			    <span>结果为:</span><p id="result"></p>
			</div>
			
			<div id="caculator">
			    <table width="400">
				    <tr>
						<td></td>
						<td></td>
						<td></td>
						<td></td>
					</tr>
					
					<tr>
					    <td><button value="7" class="number">7</button></td>
						<td><button value="8" class="number">8</button></td>
						<td><button value="9" class="number">9</button></td>
						<td><button class="caculator" value="/">/</button></td>
					</tr>
					
					
					<tr>
					    <td><button value="4" class="number">4</button></td>
						<td><button value="5" class="number">5</button></td>
						<td><button value="6" class="number">6</button></td>
						<td><button class="caculator" value="*">*</button></td>
					</tr>
					
					
					<tr>
					    <td><button value="1" class="number">1</button></td>
						<td><button value="2" class="number">2</button></td>
						<td><button value="3" class="number">3</button></td>
						<td><button class="caculator" value="-">-</button></td>
					</tr>
					
					<tr>
					    <td></td>
						<td><button value="0" class="number">0</button></td>
						<td><button class="caculator" value="=">=</button></td>
						<td><button class="caculator" value="+">+</button></td>
					</tr>
					
					
				</table>
			</div>
		</div>
	</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值