как заменить ответ первого уравнения новым значением уравнения в JQuery? - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь сказать, как я могу заменить общее значение первого уравнения новым значением уравнения в jquery. например 2 + 2 = 4 ответ первого уравнения равен 4, я хочу заменить новым уравнением. например 3 + 8 = 11?

 <input type="text" class="input">
    <button class="oprator" id="butn4">4</button>
    <button class="oprator" id="butn6">6</button>
    <button id="butnplus">+</button>
    <button id="equal">=</button>

$(document).ready(function () {
             $("#butn4").click(function () {
            $(".input").val($(".input").val() + $("#butn4").text())
        });
        $("#butn6").click(function () {
            $(".input").val($(".input").val() + $("#butn6").text())
        });

        $("#butnplus").click(function () {
            $(".input").val($(".input").val() + $("#butnplus").text())
        });
        $("#equal").click(function () {
            $(".input").val((eval($(".input").val())))
        });
    });

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Никогда не используйте eval ()!

как заменить общее значение первого уравнения новым уравнением

Что я get is, обновлять результат каждый раз, когда вы используете кнопку equal, после получения первого результата вы можете суммировать новые значения, а не суммировать со старым результатом:

let input = $(".input");

$('.oprator').click(function() {
  var value = $(this).text();
  if (input.hasClass('ready')) {
    input.removeClass('ready')
    input.val('')
  }
  input.val(input.val() + value);
});

$("#butnplus").click(function() {
  input.val(input.val() + '+')
});

$("#equal").click(function() {
  input.addClass('ready')
  input.val((eval(input.val())))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="input">
<button class="oprator" id="butn4">4</button>
<button class="oprator" id="butn6">6</button>
<button id="butnplus">+</button>
<button id="equal">=</button>

<input id="result" type="hidden" />
0 голосов
/ 08 февраля 2020

Я думаю, вы хотите это сделать?

$(document).ready(function() {
  $(".oprator").click(function() {
    $(".input").val($(".input").val() + $(this).text())
  });
  
  $("#butnplus").click(function() {
    $(".input").val($(".input").val() + $("#butnplus").text())
  });
  
  $("#equal").click(function() {
    $(".input").val((eval($(".input").val())))
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <input type="text" class="input">
 <button class="oprator">1</button>
 <button class="oprator">2</button>
 <button class="oprator">3</button>
 <button class="oprator">4</button>
 <button class="oprator">5</button>
 <button class="oprator">6</button>
 <button class="oprator">7</button>
 <button class="oprator">8</button>
 <button class="oprator">9</button>
 <button class="oprator">0</button>
 <button id="butnplus">+</button>
 <button id="equal">=</button>
...