我在使这个计算器与 eval 一起工作时遇到问题
I am having an issue with making this calculator work with eval
我必须让这个计算器与 eval 一起工作,但是我已经尝试以任何帮助都有效的方式多次使这个工作。
$(document).ready(function() {
$(".digit").click(function() {
var num = $(this).text();
$("#calculation").text(num);
});
$(".operator").click(function() {
var math = $(this).text();
$("#calculation").text(math);
});
$(".clear").click(function() {
var clear = $(this).text();
$("#calculation").text("0");
});
});
您将完全替换 #calculation
中的文本,而不是将其连接起来形成数学表达式。
试试下面的代码:
$(document).ready(function() {
$(".digit").click(function() {
var num = $(this).text();
var calculation = $("#calculation").text();
$("#calculation").text(calculation + num);
});
$(".operator").click(function() {
var math = $(this).text();
var calculation = $("#calculation").text();
$("#calculation").text(calculation + match);
});
// ... remaining code truncated
});
单击 =
按钮后,您可以从 #calculation
中获取文本并将其作为参数传递给 eval
方法。你会得到你的答案。
好的,我们试试这个。
首先,您需要将表达式存储在某处。在全局变量中,例如:
var expression = "";
$(document).ready(function() {
...
});
然后您必须将数字和运算符附加到表达式,计算并显示结果。让我们为此创建一个函数:
function appendChar(char) {
expression += char;
var result;
try {
result = eval(expression);
} catch (e) {
// failure to evaluate
result = "error";
}
$("#calculation").text(result);
}
最后,您必须按清除键清除表达式。这是完整的代码:
var expression = "";
function appendChar(char) {
expression += char;
var result;
try {
result = eval(expression);
} catch (e) {
// failure to evaluate
result = "error";
}
$("#calculation").text(result);
}
$(document).ready(function() {
$(".digit, .operator").click(function() {
appendChar($(this).text());
});
$(".clear").click(function() {
expression = "";
$("#calculation").text("0");
});
});
更新:
要显示发生了什么,您可以显示表达式和结果:
function appendChar(char) {
expression += char;
var result;
try {
result = eval(expression);
$("#calculation").text(expression + " = " + result);
} catch (e) {
$("#calculation").text(expression);
}
}
我必须让这个计算器与 eval 一起工作,但是我已经尝试以任何帮助都有效的方式多次使这个工作。
$(document).ready(function() {
$(".digit").click(function() {
var num = $(this).text();
$("#calculation").text(num);
});
$(".operator").click(function() {
var math = $(this).text();
$("#calculation").text(math);
});
$(".clear").click(function() {
var clear = $(this).text();
$("#calculation").text("0");
});
});
您将完全替换 #calculation
中的文本,而不是将其连接起来形成数学表达式。
试试下面的代码:
$(document).ready(function() {
$(".digit").click(function() {
var num = $(this).text();
var calculation = $("#calculation").text();
$("#calculation").text(calculation + num);
});
$(".operator").click(function() {
var math = $(this).text();
var calculation = $("#calculation").text();
$("#calculation").text(calculation + match);
});
// ... remaining code truncated
});
单击 =
按钮后,您可以从 #calculation
中获取文本并将其作为参数传递给 eval
方法。你会得到你的答案。
好的,我们试试这个。
首先,您需要将表达式存储在某处。在全局变量中,例如:
var expression = "";
$(document).ready(function() {
...
});
然后您必须将数字和运算符附加到表达式,计算并显示结果。让我们为此创建一个函数:
function appendChar(char) {
expression += char;
var result;
try {
result = eval(expression);
} catch (e) {
// failure to evaluate
result = "error";
}
$("#calculation").text(result);
}
最后,您必须按清除键清除表达式。这是完整的代码:
var expression = "";
function appendChar(char) {
expression += char;
var result;
try {
result = eval(expression);
} catch (e) {
// failure to evaluate
result = "error";
}
$("#calculation").text(result);
}
$(document).ready(function() {
$(".digit, .operator").click(function() {
appendChar($(this).text());
});
$(".clear").click(function() {
expression = "";
$("#calculation").text("0");
});
});
更新:
要显示发生了什么,您可以显示表达式和结果:
function appendChar(char) {
expression += char;
var result;
try {
result = eval(expression);
$("#calculation").text(expression + " = " + result);
} catch (e) {
$("#calculation").text(expression);
}
}