问答详情
源自:6-11 编程练习

计算器里,为什么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));    请一一帮忙解答谢谢

提问者:慕仙5237505 2017-10-22 11:10

个回答

  • 慕斯卡3578917
    2017-10-22 13:17:26
    已采纳

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

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

  • Molly喜
    2017-12-24 09:25:35

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

    解决方法:

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


  • 小智啊
    2017-11-01 21:04:32

    乘1效果更佳