前言:初学js,老师要求做一个简易计算器,目前只实现了能够计算,很多约束没有有做,待完善。仅作为自己的学习记录。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>简易计算器</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<script src="js/calculator.js" type="text/javascript"></script>
</head>
<body>
<!--计算器-->
<div class="calculator" id="calculator">
<div class="cal_topBar">.....</div>
<div class="cal_header" >
<!--设置窗口,使用onfocus="this.blur();"避免键盘输入-->
<input type="text" value="0" class="res_box" onFocus="this.blur()" id="result"/>
</div>
<!--设置按钮-->
<div class="cal_body" id="calcu-btn">
<div style="height:1px;"></div>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="#" class="w_1 operator" onClick="command(NaN)">mc</a></td>
<td><a href="#" class="w_1 operator" onClick="command(NaN)">m+</a></td>
<td><a href="#" class="w_1 operator" onClick="command(NaN)">m-</a></td>
<td><a href="#" class="w_1 operator" onClick="command(NaN)">mr</a></td>
</tr>
<tr>
<td><a href="#" class="w_1" onClick="command(‘C‘)">C</a></td>
<td><a href="#" class="w_1" onClick="command(1)">±</a></td>
<td><a href="#" class="w_1" onClick="command(‘÷‘)">÷</a></td>
<td><a href="#" class="w_1" onClick="command(‘x‘)">×</a></td>
</tr>
<tr>
<td><a href="#" class="w_1" onClick="command(7)">7</a></td>
<td><a href="#" class="w_1" onClick="command(8)">8</a></td>
<td><a href="#" class="w_1" onClick="command(9)">9</a></td>
<td><a href="#" class="w_1" onClick="command(‘-‘)">-</a></td>
</tr>
<tr>
<td><a href="#" class="w_1" onClick="command(4)">4</a></td>
<td><a href="#" class="w_1" onClick="command(5)">5</a></td>
<td><a href="#" class="w_1" onClick="command(6)">6</a></td>
<td><a href="#" class="w_1" onClick="command(‘+‘)">+</a></td>
</tr>
<tr>
<td><a href="#" class="w_1" onClick="command(1)">1</a></td>
<td><a href="#" class="w_1" onClick="command(2)">2</a></td>
<td><a href="#" class="w_1" onClick="command(3)">3</a></td>
<td rowspan="2">
<a href="#" class="w_3 etc" onClick="calc()">=</a>
</td>
</tr>
<tr>
<td colspan="2">
<a href="#" class="w_2 zero" onClick="command(0)">0</a>
</td>
<td><a href="#" class="w_1 spot" onClick="command(‘.‘)">.</a></td>
</tr>
</table>
</div>
</div>
<script type="text/javascript">
//获取当前显示数据
function command(v){
var res=document.getElementById("result").value;//获取当前显示的数据
if(v==‘C‘){
document.getElementById("result").value=0;//如果当前数值等于C则,显示为0
}else if(res==0)
{
document.getElementById("result").value=v;//如果当前数值等于0,则不变
}else{
document.getElementById("result").value+=v;//否则给当前值追加
}
}
//利用索引得到运算符位置
function reindex(str)
{
if(str.indexOf(‘x‘)!=-1){
return str.indexOf(‘x‘);
}else if(str.indexOf(‘÷‘)!=-1){
return str.indexOf(‘÷‘);
}else if(str.indexOf(‘+‘)!=-1){
return str.indexOf(‘+‘);
}else if(str.indexOf(‘-‘)!=-1){
return str.indexOf(‘-‘);
}
}
//计算结果
function calc(){
var str= document.getElementById("result").value;
var index=reindex(str);
var num1=parseFloat(str.substr(0,index));
var num2=parseFloat(str.substr(index+1));
if(str.indexOf(‘x‘)!=-1)
{
//乘法计算
document.getElementById("result").value=num1*num2;
//alert();
}else if(str.indexOf(‘÷‘)!=-1){
//除法计算
document.getElementById("result").value=num1/num2;
}else if(str.indexOf(‘+‘)!=-1){
//加法计算
document.getElementById("result").value=num1+num2;
}else if(str.indexOf(‘-‘)!=-1){
//减法计算
document.getElementById("result").value=num1-num2;
}
}
</script>
</body>
</html>