为了账号安全,请及时绑定邮箱和手机立即绑定

计算器里,为什么input里的value值是字符串需要转换?

<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));    请一一帮忙解答谢谢

正在回答

3 回答

1,从文本框取得的值默认为string格式

2.parseInt(t1*t2),两个string格式的怎么相乘 ,只有先转换为数值类型才能运算

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

非常感谢!mingbai了谢谢
2017-10-28 回复 有任何疑惑可以回复我~

看了你的代码,发现有个小问题。select获取id后,没有继续获取select数组的索引号。主要原因是,select获取的是一个集合或者数组,直接在select获取的id上.value的话,获取的都是第一个符号“+”。

解决方法:

var se = document.getElementById("select").value;
var index = document.selectedIndex;
var selectedValue = se.options[index].value;


0 回复 有任何疑惑可以回复我~
#1

Molly喜

sorry,测试了一下可以,忽略忽略上面的回复/(ㄒoㄒ)/~~
2017-12-24 回复 有任何疑惑可以回复我~
#2

慕仙5237505 提问者 回复 Molly喜

额好的呢,我看看
2018-01-25 回复 有任何疑惑可以回复我~

乘1效果更佳

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

计算器里,为什么input里的value值是字符串需要转换?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信