WEB2.0 homework04实现简单计算器

实现简单计算器

说明

最近上课老师开始讲JavaScript了,然后第一个作业就是用JavaScript实现一个简单的计算器;我做的这个计算器有一点瑕疵,不能在计算一个等式之后自行清零,不知怎么更改,就是这个版本了。直接贴代码了,会稍稍做一下解释。

HTML

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<script src="Calculator.js" type="text/javascript"></script>
	<link rel="stylesheet" type="text/css" href="Calculator.css">
	<title>Calculator</title>
</head>
<body>    
	<h1>简单计算器</h1>
	<div id="all_block">
		<div id="calculate_area">
			<div id="block"></div>
		</div>    
		<table width="90%" height="75%"  align="center" cellspacing="10">        
			<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>0</td>           
				<td>.</td>           
				<td id="back"></td>           
				<td>+</td>        
			</tr>        
			<tr>            
				<td>(</td>            
				<td>)</td>            
				<td id="clear">CE</td>            
				<td id="equal">=</td>        
			</tr>            
		</table>
	</div>
</body>
</html>

注:

  • table中的cellspacing属性用来规定td之间的距离;
  • 我是把css文件,html文件,JavaScript文件分开写的,所以开头用<script src="Calculator.js" type="text/javascript"></script>链接到JavaScript文件,用<link rel="stylesheet" type="text/css" href="Calculator.css">链接到css文件;
  • 另外,将每一个操作对象看成是表格中的一个小块;

css

h1{    
	text-align: center;    
	color: rgb(54, 63,63);    
	letter-spacing: 0.5em;
}

#all_block{    
	border:3px solid#20ffff;    
	border-radius:30px;    
	width: 300px;    
	height: 450px;    
	background:#b7ffe1;    
	margin: auto;
}

#calculate_area{    
	width: 270px;    
	height: 80px;    
	margin: 0 auto;    
	position: relative;
}

#block{    
	border:2px solid darkslategray;    
	border-radius:15px;    
	width: 270px;    h
	eight: 60px;    
	background: #ffffff;    
	position: absolute;    
	top: 10px;    
	text-align: right;    
	font-size:20px;
}
	
td{    
	border:1px solid darkslategray;    
	border-radius:20px;    
	background-color: rgb(120, 243, 255);    
	width: 50px;    
	height: 50px;    
	text-align: center;
}

注:

  • border:3px solid #20ffff;border-radius:30px;语句使得边框呈现圆角;

JavaScript

var str=null;
var block=null;
var equal=null;
var clear=null;
var back=null;

window.onload=function(){    
	str=document.getElementsByTagName("td");    
	block=document.getElementById("block");    
	equal=document.getElementById("equal");    
	back=document.getElementById("back");    
	clear=document.getElementById("clear");    
	read_data();
}

function read_data(){    
	for(var i=0;i<str.length;i++){        
		var is_ID=str[i].getAttribute("id");//判断元素是不是id类型        
		if(is_ID){            
			continue;        
		}
		        
		str[i].onclick=function(){        
			block.innerHTML+=this.innerHTML;//将点击的内容显示在屏幕上    
		}
	}
	
    	clear.onclick=function(){        
  		block.innerHTML="";//清空屏幕   
  	}        

	back.onclick=function(){        
		var str=block.innerHTML;        
		block.innerHTML=str.substr(0,str.length-1);//回退    
	}        

	equal.onclick=function(){        
		block.innerHTML=eval(block.innerHTML);//进行计算    
	}
}}

注:

  • 使用getElementsByTagName()得到HTML中标记为TagName的元素;
  • 使用getElementById()得到HTML中标记为 id 的元素;
  • 使用getAttribute()方法把参数的各种属性的值查询出来;
  • 使用 innerHTML 写入 HTML 元素;
  • 使用substr()函数提取字符串片段,其中第二个参数规定被提取部分的长度;
  • 使用eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值