刚刚学js语言,有问题想请教大家

qq_25834257 2015-05-29 01:14:26
<html>
<head>
<title>Document</title>
</head>
<body>
<center>
<input type="text" id="a1" size="23"><br><br>
<input type="button" value="+" onclick="jia()">
<input type="button" value="-" onclick="jian()">
<input type="button" value="*" onclick="chen()">
<input type="button" value="/" onclick="chu()"><br><br>

<input type="button" value="1" onclick="num(1)">  
<input type="button" value="2" onclick="num(2)">  
<input type="button" value="3" onclick="num(3)"><br><br>

<input type="button" value="4" onclick="num(4)">  
<input type="button" value="5" onclick="num(5)">  
<input type="button" value="6" onclick="num(6)"><br><br>

<input type="button" value="7" onclick="num(7)">  
<input type="button" value="8" onclick="num(8)">  
<input type="button" value="9" onclick="num(9)"><br><br>

<input type="button" value="C" onclick="clear_sum()">  
<input type="button" value="0" onclick="num(0)">  
<input type="button" value="=" onclick="equal()"><br><br>

</center>
<script>
var a=0;
var c=0;
function jia()
{
document.getElementById('a1').value=parseFloat(a)+parseFloat(document.getElementById('a1').value);
a=(document.getElementById('a1').value);
document.getElementById('a1').value="";
c=1;
document.getElementById('a1').focus();
}
function jian()
{
document.getElementById('a1').value=parseFloat(a)-parseFloat(document.getElementById('a1').value);
a=document.getElementById('a1').value;
document.getElementById('a1').value="";
c=2;
document.getElementById('a1').focus();
}
function chen()
{
document.getElementById('a1').value=parseFloat(a)*parseFloat(document.getElementById('a1').value);
a=parseFloat(document.getElementById('a1').value);
document.getElementById('a1').value="";
c=3;
document.getElementById('a1').focus();
}
function chu()
{
document.getElementById('a1').value=parseFloat(a)/parseFloat(document.getElementById('a1').value);
a=parseFloat(document.getElementById('a1').value);
document.getElementById('a1').value="";
c=4;
document.getElementById('a1').focus();
}
function clear_sum()
{

a=0;
document.getElementById('a1').value="";
document.getElementById('a1').focus();
}
function equal()
{
switch(c)
{
case 1:jia();break;
case 2:jian();break;
case 3:chen();break;
case 4:chu();break;
}

document.getElementById('a1').value=a;
document.getElementById('a1').focus();
a=0;
c=0;
}
function num(b)
{

document.getElementById('a1').value=document.getElementById('a1').value+b;
document.getElementById('a1').focus();
}
</script>
</body>
</html>

为什么除了加其他运算符都有问题
...全文
462 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘻哈大咖秀 2015-05-30
  • 打赏
  • 举报
回复
<html>
 <head>
  <title>Document</title>
 </head>
 <body>
 <center>
 <input type="text" id="a1" size="23"><br><br>
 <input type="button" value="+" onclick="jia(0)">
 <input type="button" value="-" onclick="jian(0)">
 <input type="button" value="*" onclick="chen(0)">
 <input type="button" value="/" onclick="chu(0)"><br><br>

 <input type="button" value="1" onclick="num(1)">  
 <input type="button" value="2" onclick="num(2)">  
 <input type="button" value="3" onclick="num(3)"><br><br>

 <input type="button" value="4" onclick="num(4)">  
 <input type="button" value="5" onclick="num(5)">  
 <input type="button" value="6" onclick="num(6)"><br><br>

 <input type="button" value="7" onclick="num(7)">  
 <input type="button" value="8" onclick="num(8)">  
 <input type="button" value="9" onclick="num(9)"><br><br>
 
 <input type="button" value="C" onclick="clear_sum()">  
 <input type="button" value="0" onclick="num(0)">  
 <input type="button" value="=" onclick="equal()"><br><br>

</center>
  <script>
var a=0;
var c=0;
//equal 用于c的值还是进行最终的运算(0:只是确定当前运算的模式C;1:进行当前模式运算)
function jia(equal)
{
	if(equal){
		document.getElementById('a1').value=parseFloat(a)+parseFloat(document.getElementById('a1').value);
		a=(document.getElementById('a1').value);
		
	}else{
		c=1;
	}
	document.getElementById('a1').value="";
	document.getElementById('a1').focus();
}
function jian(equal)
{
	console.log(equal)
if(equal){
	console.log(document.getElementById('a1').value,a)
		document.getElementById('a1').value=parseFloat(a)-parseFloat(document.getElementById('a1').value);
		a=(document.getElementById('a1').value);
		
	}else{
		c=2;
	}
	console.log(a)
	document.getElementById('a1').value="";
	document.getElementById('a1').focus();
}
function chen(equal)
{
if(equal){
		document.getElementById('a1').value=parseFloat(a)*parseFloat(document.getElementById('a1').value);
		a=(document.getElementById('a1').value);
		
	}else{
		c=3;
	}
	document.getElementById('a1').value="";
	document.getElementById('a1').focus();
}
function chu(equal)
{
if(equal){
		document.getElementById('a1').value=parseFloat(a)/parseFloat(document.getElementById('a1').value);
		a=(document.getElementById('a1').value);
		
	}else{
		c=4;
	}
	document.getElementById('a1').value="";
	document.getElementById('a1').focus();
}
function clear_sum()
{

a=0;
document.getElementById('a1').value="";
document.getElementById('a1').focus();
}
function equal()
{
switch(c)
{
case 1:jia(1);break;
case 2:jian(1);break;
case 3:chen(1);break;
case 4:chu(1);break;
}

document.getElementById('a1').value=a;
document.getElementById('a1').focus();
a=0;
c=0;
}
function num(b)
{

document.getElementById('a1').value=document.getElementById('a1').value+b;
if(!c)
	a = document.getElementById('a1').value;
document.getElementById('a1').focus();
}
  </script>
 </body>
</html>
qq_25834257 2015-05-30
  • 打赏
  • 举报
回复
我就看了几个程序就自己学着做了,有c语言基础。调用两次是因为我发现如果没有这么写最后一个数就不会参与计算,请告诉我为什么加法可以但是其他的不行?
Braska 2015-05-29
  • 打赏
  • 举报
回复
每做一次运算都调用了两次同样的运算方法 逻辑也有问题。

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧