<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>
var t1 = document.getElementById("txt1").value;
var t2 = document.getElementById("txt2").value;
var se = document.getElementById("select").value;
var fruit = document.getElementById("fruit")
switch(se){
case "+":
num = (parseInt(t1) + parseInt(t2));
break;
case "-":
num = parseInt(t1 - t2);
break;
疑问1:计算器里,为什么input里id 为t1,t2的value值是字符串要转换?
2:为什么这样写没转换?num = parseInt(t1 * t2); 而这样分开写又可以?num = (parseInt(t1) + parseInt(t2)); 请一一帮忙解答谢谢
1,从文本框取得的值默认为string格式
2.parseInt(t1*t2),两个string格式的怎么相乘 ,只有先转换为数值类型才能运算
看了你的代码,发现有个小问题。select获取id后,没有继续获取select数组的索引号。主要原因是,select获取的是一个集合或者数组,直接在select获取的id上.value的话,获取的都是第一个符号“+”。
解决方法:
var se = document.getElementById("select").value; var index = document.selectedIndex; var selectedValue = se.options[index].value;
乘1效果更佳