慕斯卡4106679
2015-12-22 18:30
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count(){
var input1,input2,get1,results;
//获取第一个输入框的值
input1=parseInt(document.getElementById("txt1").value);
//获取第二个输入框的值
input2=parseInt(document.getElementById("txt2").value);
//获取选择框的值
get1=document.getElementById('select').value;
//获取通过下拉框来选择的值来改变加减乘除的运算法则
//设置结果输入框的值
switch(get1){
case '+':
results=input1+input2;
break;
case '-':
results=input1-input2;
break;
case '*':
results=input1*input2;
break;
case '/':
results=input1/input2;
break;
}
document.getElementById('fruit').value=results;
}
</script>
</head>
<body>
<input type='text' id='txt1' />
<select id='select'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='txt2' />
<input type='button' value=' = ' onClick="count()" /> <!--通过 = 按钮来调用创建的函数,得到结果-->
<input type='text' id='fruit' />
</body>
</html>
前两个输入的数值为什么要加parseInt转化?value得到不是数值吗?
js是弱类型的语言,你取出来的值他也不知道应该是什么类型。当你用 + 时,因为字符串也可以相加,所以他就当字符串处理了。- * / 只有数字有,所以他就会自动转成数字。
JS中的'+'有两重含义(二义运算符):字符连接符和四则运算符加,在没有确切指出运算类型的情况下使用字符运算这层含义。元素的value返回的是字符串,只有在转化为数值时进行四则运算才能得出正确结果。而'-''*''/'均为一义运算符,只有两边均为数值类型时才返回结果。
查看一下将'txt1'和'txt2'填入非数值字符后进行四则运算的结果,很有意思呢。
JavaScript进阶篇
468825 学习 · 22582 问题
相似问题