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

计算器编写 请问这样是哪里出问题的了,为什么点等号没有结果?希望大神解答

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count()

   {

     var one=document.getElementById("txt1").value;

     var x=parseInt(one);

    //获取第一个输入框的值

    var two=document.getElementById("txt2").value;

    var y=parseInt(two);

//获取第二个输入框的值

var method=document.getElementById("select").value;

var sum;

//获取选择框的值

switch(method)

{

   case "+":

       sum=x+y;

       break;

   case "-":

       sum=x-y;

       break;

  case "*":

       sum=x*y;

       break;

  default:

       sum=x/y;

}

   }

//获取通过下拉框来选择的值来改变加减乘除的运算法则

document.getElementById("fruit").value=sum;

    //设置结果输入框的值 

  </script> 

 </head> 

 <body>

   <input type='text' id='txt1' /> 

   <br/>

   <select id='select'>

<option value='+'>+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

   </select>

   <br/>

   <input type='text' id='txt2' /> 

   <br/>

   <input type='button' value=' = ' onclick="count()" /> 

   <br/>

   <input type='text' id='fruit' />   

 </body>

</html>


正在回答

2 回答

你真的很粗心呀 ?!

写的 除了变量多了点 都没什么大问题,

问题是在最后的函数的结尾。。。你把 } 给搞到switch语句结束后了,导致最后的输出fruit的值没任何效果。

你把 } 移到

document.getElementById("fruit").value=sum;

后就行了

https://img1.sycdn.imooc.com//5c7977250001359d05740111.jpg

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

因为你使用的document.getElementById("xxx").value 获得的值其实是一个字符串类型的,所以你需要使用parseInt函数变换数据类型,让它转换成一个数字(使用parseInt()函数可解析一个字符串,并返回一个整数。)

并且,如果要实现点击"="按钮得到结果,需要在“=”按钮处加一个鼠标单击事件(onclick),当点击“=”时,把计算的结果值赋给最后一个文本框:document.getElementById("fruit").value=parseInt(c);

我在内容中加粗了,你可以看一下。

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

    //获取第一个输入框的值

    var a = document.getElementById("txt1").value;

//获取第二个输入框的值

var b = document.getElementById("txt2").value;

//获取选择框的值

var c = document.getElementById("select").value;

//获取通过下拉框来选择的值来改变加减乘除的运算法则

a = parseInt(a);

b = parseInt(b);

switch(c) {

    case "+":

        c = a + b;

        document.getElementById("fruit").value=parseInt(c);

        break;

    case "-":

        c = a - b;

        document.getElementById("fruit").value=parseInt(c);

        break;

    case "*":

        c = a * b;

        document.getElementById("fruit").value=parseInt(c);

        break;

    case "/":

        c = a / b;

        document.getElementById("fruit").value=parseInt(c);

        break;    

}

    //设置结果输入框的值 

    

   }

  </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>


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

慕尼黑4121459

…………我打错字母了,定义一个var d;那四个式子都换成d = a + b; document.getElementById("fruit").value=parseInt(d); d = a - b; document.getElementById("fruit").value=parseInt(d);这种 好尴尬orz如果是c虽然不影响结果但相当于把c重定义了。。因为本来c代表符号,这样写了以后相当于重新赋值代表最后结果了
2019-03-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

计算器编写 请问这样是哪里出问题的了,为什么点等号没有结果?希望大神解答

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