javascript - 构建一个基本计算器

标签 javascript jquery html

我目前正在学习如何编码,但在使用 jQuery 时遇到了一些困难。我尝试在我正在做的类(class)中将这个计算器作为一个项目来完成,但我遇到了一个障碍。我不知道如何修复我的代码:一个问题是操作不能正常工作,数字也不能正常工作。我尝试按照教程进行操作,并决定使用不同的按钮来进行操作,但我没有得到预期的结果。数字应显示在总计部分,并且运算符应给出数学结果。

您可以在此处查看我的 html、jQuery 和 javascript 的完整代码 http://codepen.io/IrvingG/pen/adRrvW

$(document).ready(function() {
  var testNumLength = function(number) {
if (number.length > 9) {
  totaldiv.text(number.substr(number.length - 9, 9));
  if (number.length > 15) {
    number = "";
    totaldiv.text("Err");
  }
}
};
var number = "";
var newnumber = "";
var operator = "";
var totaldiv = $("#results");
totaldiv.text("0");

$(".numbers button").not("#operators, #equals, #clear").click(function() {
   number += this.html();
   totaldiv.text(number);
   testNumLength.text(number);
  });
 $("#operators").click(function() {
   operator += this.html();
   newnumber = number;
   number = "";
   totaldiv.text("0");
  });

 $("#clear, #clear1").click(function() {
   number = "";
   totaldiv.text("0");
   if ($(this).attr("id") === "#clear") {
     newnumber = ";"
   }
 });

 $("#equals").click(function(){
   if (operator === "+"){
     number = (parseInt(number, 10) + parseInt(number, 10).toString(10));
   } else if (operator === "-"){
   number = (parseInt(number, 10) - parseInt(number, 10).toString(10));
} else if (operator === "/"){
  number = (parseInt(number, 10) / parseInt(number, 10).toString(10));
} else if (operator === "*"){
  number = (parseInt(number, 10) * parseInt(number, 10).toString(10));
} 

totaldiv.text(number);
testNumLength(number);
number="";
newnumber="";
});

});

最佳答案

这里是代码Calculator

$(document).ready(function() {
  var testNumLength = function(number) {
if (number.length > 9) {
  totaldiv.text(number.substr(number.length - 9, 9));
  if (number.length > 15) {
    number = "";
    totaldiv.text("Err");
  }
}
};
 var result;
var number = "";
var newnumber = ""; 
var operator = "";
var totaldiv = $("#results");
totaldiv.text("0");

$(".numbers button").not(".operator,#equals  ,#clear").click(function() {
   number += $(this).html();

   totaldiv.text(number);
   testNumLength(number);

  });
 $(".operator").click(function() { 
   operator = $(this).html();

   newnumber = number;
   number = "";
   totaldiv.text("0");

  });

 $("#clear, #clear1").click(function() {
   number = "";
   totaldiv.text("0");
   if ($(this).attr("id") === "#clear") {
     newnumber = ";";
   }
 });

 $("#equals").click(function(){ 
   if (operator === "+"){
     result=parseInt(newnumber, 10) + parseInt(number, 10);
     number = result.toString(10); 

   } else if (operator === "-"){
  result=parseInt(newnumber, 10) -  parseInt(number, 10);

     number = result.toString(10);
} else if (operator === "/"){
  result=parseInt(newnumber, 10) / parseInt(number, 10);
     number = result.toString(10);
} else if (operator === "*"){
result=parseInt(newnumber, 10) * parseInt(number, 10);
     number = result.toString(10);
} 

totaldiv.text(number);
testNumLength(number);
number="";
newnumber="";
});
});

关于javascript - 构建一个基本计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35517505/

相关文章:

javascript - 将变量从 PHP 发送到 Javascript

javascript - 在悬停时分别激活元素

html - td 之间的空间 - 再一次

javascript - 'click' 绑定(bind)不工作 - 无法调用函数 - Knockout.js

javascript - JS 继承和变异原型(prototype)

javascript - ng-model 未更新日期时间字段已更改

javascript - Android 浏览器 touchend 事件错误解决方法

jquery - Firefox 中的 SVG 偏移问题

jquery - 从 JQuery 函数获取数组

javascript - 修改视频元素的outerHTML而不破坏视频