经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
用js写一个简易计算器
来源:cnblogs  作者:lovelyk  时间:2021/1/11 9:34:41  对本文有异议

要求

1.实现最基本的+ - * / %运算,样式不做要求。
2.有一个【清除】按钮,清除所有输入

有几个地方需要注意:

  • 如何获取输入框的内容?
    1. //用H5的方法获取元素内容
    2. var n1 = document.querySelector('.n1');
    3. var n2 = document.querySelector('.n2');
  • 如何取得运算符的内容?
    1. 1.先获取select这个下拉框
    2. var ys = document.querySelector('#ys');
    3. 2.然后获取被选中的下标值,并获取到该值(运算符)
    4. var index = ys.selectedIndex;
    5. var opt = ys.options[index].value;
  • 获取到的内容能否直接运算?
    1. 有了两个值和运算符,还不能直接元素。因为获取到的内容都是string字符串类型。需要强制转换成number类型。
    2. 然后用switch语句判断运算符内容,并进行对应的运算。
  • 如何把运算结果写到页面中?
    1. 首页要获取到展示结果的位置
    2. 获取元素文本内容,有几种方式:
    3. 1.innerHTML或者innerContext
    4. innerHTML会读取内容的语义,解析标签
    5. innerContext和上面作用一样,只适用于火狐(Firefox)浏览器。
    6. 2.innerText(推荐使用)
    7. 只是读取直接子级的文字
    8. 2.textContent (不推荐使用)
    9. 读取的内容不仅仅是直接子级,元素所有的文字内容
    10. 也会被读取出,不推荐使用,会被恶意注入。
  • 清除按钮怎么清除所有内容?
    1. 上面功能完成了,几乎就没啥问题了。
    2. 清除就是把所有的输入框,结果对应的元素标签
    3. element.innerText = '';
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>计算器</title>
  7. <style>
  8. input,select,option,span,p,button{
  9. width: 80px;
  10. height: 30px;
  11. font-size: 20px;
  12. }
  13. .clear{
  14. cursor: pointer;
  15. border: 1px solid #333;
  16. }
  17. p.result{
  18. display: inline-block;
  19. min-width: 50px;
  20. width: 150px;
  21. }
  22. option{
  23. font-size: 26px;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <input type="number" value="" class="n1">
  29. <select id="ys">
  30. <option value="+">+</option>
  31. <option value="-">-</option>
  32. <option value="*">*</option>
  33. <option value="/">/</option>
  34. <option value="%">%</option>
  35. </select>
  36. <input type="number" class="n2" value="">
  37. <button>=</button>
  38. <p class="result">0</p>
  39. <br>
  40. <span class="clear">清除</span>
  41. <script>
  42. var n1 = document.querySelector(".n1");
  43. var n2 = document.querySelector(".n2");
  44. var ys = document.querySelector("#ys");
  45. var result = document.querySelector(".result");
  46. var btn = document.querySelector("button");
  47. var clear = document.querySelector(".clear")
  48. //点击按钮 计算结果
  49. btn.onclick= function(){
  50. var index = ys.selectedIndex;
  51. var opt = ys.options[index].value;
  52. var resultValue;
  53. switch(opt){
  54. case '+':
  55. resultValue = parseFloat(n1.value)+parseFloat(n2.value);
  56. break;
  57. case '-':
  58. resultValue = parseFloat(n1.value)-parseFloat(n2.value);
  59. break;
  60. case '*':
  61. resultValue = parseFloat(n1.value)*parseFloat(n2.value);
  62. break;
  63. case '/':
  64. resultValue = parseFloat(n1.value) / parseFloat(n2.value);
  65. break;
  66. case '%':
  67. resultValue = parseInt(n1.value) % parseInt(n2.value);
  68. }
  69. //解决不同浏览器对innerText属性兼容性问题 , firefox用的是innerContent
  70. (typeof result.innerText) == "string" ? (result.innerText = resultValue) : (result.innerContent = resultValue) ;
  71. }
  72. //清零
  73. clear.onclick = function(){
  74. result.innerText = '0';
  75. n1.value = '';
  76. n2.value = '';
  77. }
  78. </script>
  79. </body>
  80. </html>

原文链接:http://www.cnblogs.com/lovelyk/p/14255646.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号