<!DOCTYPE html> <html> <head> <title> 事件</title> <script type="text/javascript"> function count(){ var res; //获取第一个输入框的值 var a=document.getElementById("txt1").value; //获取第二个输入框的值 var b=document.getElementById("txt2").value; //获取选择框的值 var ocal=document.getElementById("select").value; //获取通过下拉框来选择的值来改变加减乘除的运算法则 switch(ocal){ case "+": res=parseInt(a) + parseInt(b); break; case "-": res=a - b; break; case "*": res=a * b; break; case "/": res=a / b; break; default: res="请正确输入"; } //设置结果输入框的值 document.getElementById("fruit").value=res; } </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>
这个能正确运行出来,但是在我第一次的时候加的情况下,因为是写res=a+b,输出的结果单纯是两串字拼接在一起,就像23+55=2355这样,在参考了其他人的写法才知道这个parseInt,我想问下是不是要算加法的话一定要加这个东西?
不用,parseInt()的作用是将字符转换为与之相应的整数,
这个程序里要加是因为取值时document.getElementById("txt1").value语句取到的值是字符类型的,直接运行a+b会被认为是字符相加所以“23”+“55”就是2355,
而用了parseInt()后,把“23”,“25”两个字符转换为了23,25两个数字,所以a+b就是23+25=47了。
ps.其实在定义a和b时直接用parseInt()将a,b取整程序会简单一点:
var a=parseInt(document.getElementById("txt1").value);
var b=parseInt(document.getElementById("txt2").value);
parseInt()的作用是将从输入框中获得的内容转为Int类型,楼上说的很清楚了
不需要啊,parseInt只是对括号中的内容取整操作,不影响其他的