jQuery实现计算器功能

 更新时间:2020年10月19日 11:47:33   作者:willard_cui  
这篇文章主要为大家详细介绍了jQuery实现计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了jQuery实现计算器功能的具体代码,供大家参考,具体内容如下

动画效果:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>计算器</title>
  <script src="../jquery.min.js"></script>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    #calculator{
      margin: 50px auto;
      padding: 5px;
      width: 230px;
      height: 230px;
      background: rgb(190,210,224);
    }
    #screen{
      width: 230px;
      height: 60px;
      background: rgb(153,153,153);
      border-radius: 5px;
      text-align: right;
      overflow: hidden;
    }
    #txt1{
      height: 20px;
      padding-top: 10px;
      font-size: 10px;
    }
    #txt2{
      height: 30px;
      font-size: 20px;
    }
    #num{
      float:left;
      width: 130px;
    }
    #num input{
      width: 40px;
      height: 40px;
      margin-top: 3px;
    }
    #operator{
      float:right;
      width: 70px;
      height: 170px;
    }
    #operator input{
      width: 70px;
      height: 30px;
      margin-top: 4px ;
    }
    #converter{
      float:right;
      width: 70px;
      height: 170px;
    }
 
  </style>
</head>
<body>
<div id="calculator">
  <div id="screen">
    <p id="txt1"></p>
    <p id="txt2"></p>
  </div>
  <div id="workspace">
    <div id="num">
      <input type="button" value="7">
      <input type="button" value="8">
      <input type="button" value="9">
      <input type="button" value="4">
      <input type="button" value="5">
      <input type="button" value="6">
      <input type="button" value="1">
      <input type="button" value="2">
      <input type="button" value="3">
      <input type="button" value="C">
      <input type="button" value="0">
      <input type="button" value=".">
 
    </div>
    <div id="operator">
      <input type="button" value="+">
      <input type="button" value="-">
      <input type="button" value="*">
      <input type="button" value="/">
      <input type="button" value="=">
    </div>
 
 
  </div>
</div>
 
<script>
  $(function(){
     var i=0;//i为清空标志,i=1时需要清空#txt2的数据
    //获取输入的数字
    $("#num input").click(function () {
      //先判断#txt2中是否保存着上次计算的结果,如果是则将其清空
      if (i===1){
        $("#txt2").text("");
        }
      //保证数字以正确的格式显示
      //使用switch语句实现
      switch ($(this).val()){
         case "C":
           $("#txt2").text("");
           break;
         case ".":
           if ($("#txt2").text().indexOf(".") != -1) {
           break;
           }else{$("#txt2").append($(this).val());}
           break;
         default:
           if ($("#txt2").text() === "0") {
             $("#txt2").text($(this).val());
            }else{
              $("#txt2").append($(this).val());
            }
          }
          //使用if语句实现
         /* if ($(this).val()=="C"){
             $("#txt2").text(" ");
           } else {
            if ($("#txt2").text().indexOf(".") != -1) {
              if ($(this).val() == ".") {
               } else {
                 $("#txt2").append($(this).val());
               }
            } else if ($("#txt2").text() === "0") {
              if ($(this).val() === ".") {
              $("#txt2").append($(this).val());
              } else {
                $("#txt2").text($(this).val());
              }
             }else{
              $("#txt2").append($(this).val());
             }
             }*/
         i=0;//将清空标志设为0
     });
    //获取运算符
     $("#operator input:not(:last)").click(function () {
       $("#txt1").text($("#txt2").text()+$(this).val());
       $("#txt2").text("");
     });
     //按下“=”键进行计算
     $("#operator input").last().click(function () {
       //使用eval()函数
      //$("#txt2").text(eval($("#txt1").text()+$("#txt2").text()));
       //使用常规方法
       var str=$("#txt1").text();
       var n1=parseFloat(str);
       var n2=parseFloat($("#txt2").text());
       var cal=str[str.length-1];
       switch (cal){
         case "+":
           $("#txt2").text( n1+n2);
           break;
         case "-":
           $("#txt2").text( n1-n2);
           break;
         case "*":
           $("#txt2").text( n1*n2);
           break;
         case "/":
           $("#txt2").text( n1/n2);
           break;
         default: break;
       }
       $("#txt1").text( "");
       i=1;//将清空标志设为1
     });
  });
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • jQuery链式操作实例分析

    jQuery链式操作实例分析

    这篇文章主要介绍了jQuery链式操作,实例分析了jQuery基于链式操作动态改变页面元素样式的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 推荐8款jQuery轻量级树形Tree插件

    推荐8款jQuery轻量级树形Tree插件

    这篇文章主要给大家推荐8款jQuery轻量级树形Tree插件,需要的朋友可以参考下
    2014-11-11
  • jQuery访问json文件中数据的方法示例

    jQuery访问json文件中数据的方法示例

    这篇文章主要介绍了jQuery访问json文件中数据的方法,结合实力形式分析了jQuery事件响应及json文件的加载、读取、遍历等相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • jQuery实现带滚动线条导航效果的方法

    jQuery实现带滚动线条导航效果的方法

    这篇文章主要介绍了jQuery实现带滚动线条导航效果的方法,分析了带滚动条导航效果的实现原理与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • JQuery在页面中添加和除移DOM示例代码

    JQuery在页面中添加和除移DOM示例代码

    本文为大家介绍下使用JQuery实现在页面中添加和除移DOM主要使用了以下几个方法,感兴趣的朋友可以了解下哈,希望对大家有所帮助
    2013-06-06
  • jQuery实用密码强度检测

    jQuery实用密码强度检测

    本篇文章主要介绍了jQuery实用密码强度检测,这是一个非常常见的功能,可以验证密码的强度,本文使用jQuery来实现,有需要的小伙伴可以参考下。
    2017-03-03
  • jQuery Ajax 上传文件处理方式介绍(推荐)

    jQuery Ajax 上传文件处理方式介绍(推荐)

    jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,接下来通过本文给大家介绍jquery ajax 上传文件处理方式,需要的朋友一起看看吧
    2016-06-06
  • jQuery实现图片上传预览效果功能完整实例【测试可用】

    jQuery实现图片上传预览效果功能完整实例【测试可用】

    这篇文章主要介绍了jQuery实现图片上传预览效果功能,结合完整实例形式分析了jQuery处理图片上传预览相关事件响应、浏览器判断、图片及页面元素动态操作相关实现技巧,需要的朋友可以参考下
    2018-05-05
  • 使用jQuery实现星级评分代码分享

    使用jQuery实现星级评分代码分享

    本文给大家分享的是一段使用jQuery制作的星级评分的代码,非常大气漂亮,功能也很实用,这里推荐个大家。
    2014-12-12
  • jQuery拖拽通过八个点改变div大小

    jQuery拖拽通过八个点改变div大小

    这篇文章主要为大家详细介绍了jQuery拖拽通过八个点改变div大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论