将数字提升为幂给我带来了问题

Raising numbers to powers gives me problems

我正在尝试做到这一点,这样您就可以单击一个按钮,然后单击 ^,然后单击另一个按钮,它会将第一个数字提高到第二个数字的幂。

代码:

$(document).ready(function() {
  var testNumLength = function(number) {
    if (number.length > 9) {
      totaldiv.text(number.substr(number.length - 9, 9));

    }
  };
  var number = "";
  var newnumber = "";
  var operator = "";
  var totaldiv = $("#total");
  totaldiv.text("0");
  $("#numbers a").not("#clear,#clearall").click(function() {
    number += $(this).text();
    totaldiv.text(number);
    testNumLength(number);
  });
  $("#operators a, #side a").not("#equals, #decimal").click(function() {
    operator = $(this).text();
    newnumber = number;
    number = "";
    totaldiv.text("0");
    if ($(this).attr('id') === "sqrt") {
      operator = "sqrt";
      $("#equals").click();
    }
  });
  $("#clear,#clearall").click(function() {
    number = "";
    totaldiv.text("0");
    if ($(this).attr("id") === "clearall") {
      newnumber = "";
    }
  });
  //Add your last .click() here!
  $("#equals").click(function() {
    if (operator === "+") {
      number = (parseInt(number, 10) + parseInt(newnumber, 10)).toString(10);
    } else if (operator === "-") {
      number = (parseInt(newnumber, 10) - parseInt(number, 10)).toString(10);
    } else if (operator === "÷") {
      number = (parseInt(newnumber, 10) / parseInt(number, 10)).toString(10);
    } else if (operator === "×") {
      number = (parseInt(newnumber, 10) * parseInt(number, 10)).toString(10);
    } else if (operator === "sq") {
      number = (Math.pow(parseInt(newnumber, 10), parseInt(number, 10))).toString(10);
    } else if (operator === "sqrt") {
      number = newnumber;
      number = Math.sqrt(parseFloat(number, 10)).toString(10);
    }
    totaldiv.text(number);
    testNumLength(number);
    number = "";
    newnumber = "";
  });
  $('#decimal').click(function() {
    var numOfDecs = 0;
    for (var i = 0; i < number.length; i++) {
      if (number[i] === ".") {
        totaldiv.text(number[i]);
      }
    }
    if (numOfDecs === 0) {
      number.append('.');
      totaldiv.text(number);
      testNumLengh(number);
    }
  })
});

这是一个fiddle: https://jsfiddle.net/fqdxkL4y/3/

它将只保留第二个数字而不显示结果。

看起来你把指数按钮的 id 而不是文本“^”。

改变这个:

} else if (operator === "sq") {

对此:

} else if (operator === "^") {