博客列表 >运用JavaScript所学知识完成一个功能相对完整的计算器案例---2018年9月15日13时50分

运用JavaScript所学知识完成一个功能相对完整的计算器案例---2018年9月15日13时50分

coolperJie
coolperJie原创
2018年09月25日 17:59:20752浏览

以下代码是基于JavaScript知识的DOM与事件操作基础所实现的案例,综合运用了这些知识,其中还包括css样式的控制:

<!DOCTYPE html>
<html>
<head>
 <title>计算器</title>
 <style type="text/css">
  .box {
   width: 500px;
   height:250px;
   background-color: #efefef;
   border: 1px solid lightgrey;
   text-align: center;
   margin: 20px auto;
   color: #636363;
   border-radius: 15px;
   box-shadow: 2px 2px 2px #999;
  }
  table {
   margin: auto;
  
  }
  td {
   width: 100px;
   height: 30px;
   padding: 5px 10px;
  }
  input, select {
   width: 100%;
   height: 100%;
   border: none;
   text-align: left;
   padding-left: 15px;
  }
  button {
   width: 100%;
   height: 100%;
   border: none;
   background-color: skyblue;
   color: white;
  }
  button:hover {
   cursor: pointer;
   background-color:coral;
   width: 110%;
   height: 110%; 
  }
 </style>
</head>
<body>
 <div class="box">
  <h2>计算器</h2>
  <form>
   <table>
    <tr>
     <td><input type="text" name="opt1" placeholder="操作数1"></td>
     <td>
      <select name="option" id="">
       <option value="null">选择操作</option>
       <option value="add">+</option>
       <option value="sub">-</option>
       <option value="mul">*</option>
       <option value="div">/</option>
      </select>
     </td>
     <td><input type="text" name="opt2" placeholder="操作数2"></td>
     <td><button type="button">计算</button></td>
    </tr>
    <tr>
     <td align="right"><h3>结果:</h3></td>
     <td align="left" colspan="3"><h3 id="result"></h3></td>
    </tr>
   </table>
  </form>
 </div>
 <script type="text/javascript">
  //获取操作数,按钮,结果占位符
  let opt1 = document.getElementsByName('opt1')[0];
  let opt2 = document.getElementsByName('opt2')[0];
  let opt = document.getElementsByName('option')[0];
  let btn = document.getElementsByTagName('button')[0];
  let result = document.getElementById('result');
  //给按钮添加事件,进行计算
  btn.onclick = function () {
   //初始化操作数
   let data1 = 0;
   let data2 = 0;
   if(opt1.value.length === 0) {
    alert('第一个操作数不能为空');
    opt1.focus();
    return false;
   } else if(isNaN(opt1.value)) {
    alert('第一个操作数必须为数字');
    opt1.focus();
    opt1.value = '';
    return false;
   } else if(opt2.value.length === 0){
    alert('第二个操作数不能为空');
    opt2.focus();
    return false;
   } else if(isNaN(opt2.value)) {
    alert('第二个操作数必须为数字');
    opt2.focus();
    opt2.value = '';
    return false;
   } else {
    data1 = parseFloat(opt1.value);
    data2 = parseFloat(opt2.value);
   }
   //对操作数进行处理
   let option = opt.value;
   let temp = 0;
   let flag = '';
   switch (option) {
    case 'null':
     alert('请选择操作类型');
     opt.focus();
     return false;
    case 'add':
     flag = '+';
     temp = data1 + data2;
     break;
    case 'sub':
     flag = '-';
     temp = data1 - data2;
     break;
    case 'mul':
     flag = '*';
     temp = data1 * data2;
     break;
    case 'div':
     flag = '/';
     if (data2 === 0){
      alert('除数不能为零');
      opt2.focus();
      opt2.value = '';
      return false;
     }else { 
      temp = data1 / data2;
      //四舍五入,仅保留两位小数
      temp = Math.round(temp * 100) / 100;
     }
     break;
   }
   let str ='<span style="color:coral;">' + data1+' '+flag + ' ' + data2 +' = ' + temp + '</span>'; 
   result.innerHTML = str;
  }
 </script>
</body>
</html>

以上代码主要中js实现了一个功能完整的计算器案例,其中包括计算器样式的简单设计,使用css(),以及在js脚本中对页面元素的获取方式,这里总结为以下几点:

(1)通过属性名获取:document.getElementsByName('属性名');

(2)通过标签获取:document.getElementsByTagName('标签');

(3)通过class获取:document.getElementByClass ('Class');

(4)通过Id获取:document.getElementById ('Id');

以及如何给按钮添加事件,这里只添加了一个点击事件,另外还有好多事件可以添加,包括鼠标移入,移出等等,

最后还包括如何动态的把内容添加到页面文档中显示给用户,所用属性名就是innerHTML。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议