当我们在 JQuery 中添加删除旧 eval 值并替换新按钮值的新方程式时,如何在 JQuery 中制作计算器?
how to make calculator in JQuery when we add new equation that remove old eval value and replace a new button value in JQuery?
我试图用我的 jQuery 计算器中的新值替换答案值,但它没有替换答案。相反,它增加了答案的下一个。
$("#btn1").click(function() {
$("#preview").val($("#preview").val() + $("#btn1").val())
});
$("#btn2").click(function() {
$("#preview").val($("#preview").val() + $("#btn2").val())
});
$("#btn4").click(function() {
$("#preview").val($("#preview").val() + $("#btn4").val())
});
$("#btn5").click(function() {
$("#preview").val($("#preview").val() + $("#btn5").val())
});
$("#btn6").click(function() {
$("#preview").val($("#preview").val() + $("#btn6").val())
});
$("#btn7").click(function() {
$("#preview").val($("#preview").val() + $("#btn7").val())
});
$("#btn8").click(function() {
$("#preview").val($('#preview').val().substring(0, $('#preview').val().length - 1));
});
$("#btn3").click(function() {
$("#preview").val((eval($("#preview").val())))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="preview">
<input type="button" type="button" id="btn1" value="3" onclick="showValue()">
<input type="button" id="btn2" value="4">
<input type="button" id="btn4" value="*">
<input type="button" id="btn5" value="+">
<input type="button" id="btn6" value="-">
<input type="button" id="btn7" value="/">
<input type="button" id="btn3" value="=">
<input type="button" id="btn8" value="bs">
您可以存储一个全局变量,该变量在评估答案时等于 true
。此外,您的代码可以简化如下:
let evaluated = false;
$(".input").click(function() {
const val = evaluated ? $(this).val() : ($("#preview").val() + $(this).val())
$("#preview").val(val)
evaluated = false;
});
$("#btn8").click(function() {
$("#preview").val($('#preview').val().substring(0, $('#preview').val().length - 1));
});
$("#btn3").click(function() {
$("#preview").val((eval($("#preview").val())))
evaluated = true;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="preview">
<input type="button" id="btn1" class="input" value="3">
<input type="button" id="btn2" class="input" value="4">
<input type="button" id="btn4" class="input" value="*">
<input type="button" id="btn5" class="input" value="+">
<input type="button" id="btn6" class="input" value="-">
<input type="button" id="btn7" class="input" value="/">
<input type="button" id="btn3" value="=">
<input type="button" id="btn8" value="bs">
我试图用我的 jQuery 计算器中的新值替换答案值,但它没有替换答案。相反,它增加了答案的下一个。
$("#btn1").click(function() {
$("#preview").val($("#preview").val() + $("#btn1").val())
});
$("#btn2").click(function() {
$("#preview").val($("#preview").val() + $("#btn2").val())
});
$("#btn4").click(function() {
$("#preview").val($("#preview").val() + $("#btn4").val())
});
$("#btn5").click(function() {
$("#preview").val($("#preview").val() + $("#btn5").val())
});
$("#btn6").click(function() {
$("#preview").val($("#preview").val() + $("#btn6").val())
});
$("#btn7").click(function() {
$("#preview").val($("#preview").val() + $("#btn7").val())
});
$("#btn8").click(function() {
$("#preview").val($('#preview').val().substring(0, $('#preview').val().length - 1));
});
$("#btn3").click(function() {
$("#preview").val((eval($("#preview").val())))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="preview">
<input type="button" type="button" id="btn1" value="3" onclick="showValue()">
<input type="button" id="btn2" value="4">
<input type="button" id="btn4" value="*">
<input type="button" id="btn5" value="+">
<input type="button" id="btn6" value="-">
<input type="button" id="btn7" value="/">
<input type="button" id="btn3" value="=">
<input type="button" id="btn8" value="bs">
您可以存储一个全局变量,该变量在评估答案时等于 true
。此外,您的代码可以简化如下:
let evaluated = false;
$(".input").click(function() {
const val = evaluated ? $(this).val() : ($("#preview").val() + $(this).val())
$("#preview").val(val)
evaluated = false;
});
$("#btn8").click(function() {
$("#preview").val($('#preview').val().substring(0, $('#preview').val().length - 1));
});
$("#btn3").click(function() {
$("#preview").val((eval($("#preview").val())))
evaluated = true;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="preview">
<input type="button" id="btn1" class="input" value="3">
<input type="button" id="btn2" class="input" value="4">
<input type="button" id="btn4" class="input" value="*">
<input type="button" id="btn5" class="input" value="+">
<input type="button" id="btn6" class="input" value="-">
<input type="button" id="btn7" class="input" value="/">
<input type="button" id="btn3" value="=">
<input type="button" id="btn8" value="bs">