简单的JavaScript计算器与JQuery
Simple JavaScript Calculator with JQuery
我已经在一个简单的Javascript计算器上工作了几天多。CSS和HTML似乎很好。计算器仅适用于七人制和除法功能!其他数字按预期显示在顶部输出行中,但较低的输出仅输出七分和除法的答案。我似乎无法弄清楚为什么 JQuery 没有在点击时输入。任何帮助将不胜感激!这是我的CodePen的链接...http://codepen.io/RDaniels34/pen/MKXOKx
/*******************************
Math Functions
*******************************/
var topNumber = [];
var newnumber = [];
var operator = [];
var computedNumber = [];
/**********************************
Mathematical Function Buttons
***********************************/
function clrFunction() {
topNumber.splice(0, topNumber.length);
document.getElementById("numberDisplay1").innerHTML = 0;
computedNumber.splice(0, computedNumber.length);
document.getElementById("numberDisplay2").innerHTML = 0;
}
function divideFunction() {
topNumber[topNumber.length] = " / ";
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function timesFunction() {
topNumber[topNumber.length] = " X ";
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function backspaceFunction() {
topNumber.splice(topNumber.length - 1, 1);
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
if (topNumber.length == []) {
document.getElementById("numberDisplay1").innerHTML = 0;
}
}
function subtractFunction() {
topNumber[topNumber.length] = " - ";
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function addFunction() {
topNumber[topNumber.length] = " + ";
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function percentFunction() {
topNumber[topNumber.length] = "% ";
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function rd34Function() {
document.getElementById("numberDisplay1").innerHTML = "Programming is Fun!";
}
//function plusminusFunction() {
// var newNumber = "";
// if (topNumber < 0) {
// newNumber = +(topNumber);
// } else if (topNumber > 0) {
// newNumber = -(topNumber);
// }
// return plusminusFunction();
// document.getElementById("numberDisplay1").innerHTML = topNumber.splice(0, 0, newNumber);
// }
function decimalFunction() {
topNumber[topNumber.length] = ".";
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
//function equalsFunction() {
// document.getElementById("numberDisplay1").innerHTML = topNumber.join("").eval(topNumber);
// if (topNumber.length == []) {
// document.getElementById("numberDisplay2").innerHTML = 0;
// }
//}
/****************************
Number Button Functions
*****************************/
function oneFunction() {
topNumber[topNumber.length] = 1;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function twoFunction() {
topNumber[topNumber.length] = 2;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function threeFunction() {
topNumber[topNumber.length] = 3;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function fourFunction() {
topNumber[topNumber.length] = 4;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function fiveFunction() {
topNumber[topNumber.length] = 5;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function sixFunction() {
topNumber[topNumber.length] = 6;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function sevenFunction() {
topNumber[topNumber.length] = 7;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function eightFunction() {
topNumber[topNumber.length] = 8;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function nineFunction() {
topNumber[topNumber.length] = 9;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
function zeroFunction() {
topNumber[topNumber.length] = 0;
document.getElementById("numberDisplay1").innerHTML = topNumber.join("");
}
/*********************************
Bottom Number Display
********************************/
$(document).ready(function() {
var testNumLength = function(firstNumber) {
if (firstNumber.length > 9) {
$("#numberDisplay2").text(firstNumber.substr(firstNumber.length - 9, 9));
if (firstNumber.length > 15) {
firstNumber = "";
$("#numberDisplay2").text("Err");
}
}
};
var firstNumber = "";
var secondNumber = "";
var answer = "";
var operator = "";
$("#numberDisplay2").text("0");
$("#numbers").click(function() {
firstNumber += $(this).text();
$("#numberDisplay2").text(firstNumber);
testNumLength(firstNumber);
});
$("#operator").click(function() {
operator = $(this).text();
secondNumber = firstNumber;
firstNumber = "";
$("#numberDisplay2").text();
});
$("#clr").click(function() {
firstNumber = "";
$("#numberDisplay2").text("0");
if ($(this).attr("id") == "clr") {
firstNumber = "";
}
});
$("#backspace").click(function () {
firstNumber -= $(this).text();
$("#numberDisplay2").text(firstNumber);
testNumLength(firstNumber);
});
$("#equals").click(function() {
var answer = "";
parseFloat(firstNumber);
parseFloat(secondNumber);
if (operator == "-") {
answer = secondNumber - firstNumber;
} else if (operator == "X") {
answer = secondNumber * firstNumber;
} else if (operator == "/") {
answer = secondNumber / firstNumber;
} else if (operator == "+") {
answer = secondNumber + firstNumber;
}
// else if (operator == "%") {
// solution = number / 100;
// }
//answer.toString("");
$("#numberDisplay2").text(answer.toFixed(6));
testNumLength(answer);
//newNumber = "";
//nextNumber = "";
});
});
问题是您在numbers
中多次使用相同的 HTML 标识符。
<button type="button" onclick="nineFunction()" id="numbers" class="btn btn-default btn-sm">9</button>
<button type="button" onclick="fourFunction()" id="numbers" class="btn btn-default btn-sm">4</button>
<button type="button" onclick="fiveFunction()" id="numbers" class="btn btn-default btn-sm">5</button>
因此,当浏览器解释此代码时:
$("#numbers").click(function() {
firstNumber += $(this).text();
$("#numberDisplay2").text(firstNumber);
testNumLength(firstNumber);
});
它不了解您打算引用哪个numbers
元素。
要解决此问题,您需要使用类.numbers
或为每个数字按钮提供自己唯一的 HTML ID 并绑定到该 ID 并绑定到该 HTML ID。
举个例子:
<button type="button" onclick="nineFunction()" class="numbers btn btn-default btn-sm">9</button>
<button type="button" onclick="fourFunction()" class="numbers btn btn-default btn-sm">4</button>
然后将代码更改为:
$(".numbers").click(function() {
firstNumber += $(this).text();
$("#numberDisplay2").text(firstNumber);
testNumLength(firstNumber);
});
相关文章:
- 实时自动更新的jQuery/Javascript计算器(猜测AJAX)
- 提示计算器 jquery 不起作用
- 将最大长度设置为 jQuery 计算器的数字显示
- 在计算器中创建一个 CE 按钮,该按钮使用 jQuery 删除文本框中的文本
- 简单的JavaScript计算器与JQuery
- 基本 jQuery 计算器
- 使用JavaScript / jQuery向价格计算器添加下拉列表选项
- 宽度和长度价格计算器帮助(添加选项)使用JavaScript / jQuery
- jQuery计算器;减法问题
- jQuery/Bootstrap弹出窗口,将费用添加到运行费用计算器中
- 我可以't获取要使用jQuery显示的计算器结果
- 使用jQuery创建一个表单条目计算器
- jQuery价格计算器函数不适用于选项卡
- jQuery/Javascript净工资计算器
- 计算器Javascript/Jquery存储变量
- 需要一些帮助创建一个JQuery计算器
- 不同条件下的JQuery计算器
- JQuery计算器不工作,因为新的CSS样式
- 麻烦与简单的jQuery计算器在页面上
- 制作JQuery计算器,更改innerHTML,但什么都没发生