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

来源:6-11 编程练习

慕仙5237505

2017-10-22 11:10

<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回答

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

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

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

    慕仙5237...

    非常感谢!mingbai了谢谢

    2017-10-28 09:22:28

    共 1 条回复 >

  • 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;


    慕仙5237... 回复Molly喜

    额好的呢,我看看

    2018-01-25 14:32:40

    共 2 条回复 >

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

    乘1效果更佳

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题