如何从2个不同的代码中添加2个变量?

时间:2017-12-21 23:48:20

标签: jquery html

我需要添加从变量生成的值" sum1"和" sum2"一起,然后将该金额附加到班级" .results-6"。

HTML

<p class="results-4"></p>
<p class="results-5"></p>
<p class="results-6"></p>

的jQuery

$(document).on("keyup", "input", function() { 
    var sum1 = 0;
    var turkey = parseInt($('.turkey').val(), 10);
    if($(this).val() <= 5){ 
        sum1 === 1 ? sum1 : sum1++;
    } else if ($(this).val() >=6 && $(this).val() <=12) {
        sum1 === 2 ? sum1 : sum1 += 2;
    } else if ($(this).val() >= 13 && $(this).val() <=20) {
        sum1 === 3 ? sum1 : sum1 += 3;
    } else if ($(this).val() >= 21 && $(this).val() <=30) {
        sum1 === 4 ? sum1 : sum1 += 4;
    }
    $(".results-4").html(sum1);
});

$(document).on("keyup", "input", function() { 
    var sum2 = 0;
    var chicken = parseInt($('.chicken').val(), 10);
    if($(this).val() <= 5){ 
        sum2 === 1 ? sum2 : sum2++;
    } else if ($(this).val() >=6 && $(this).val() <=12) {
        sum2 === 2 ? sum2 : sum2 += 2;
    } else if ($(this).val() >= 13 && $(this).val() <=20) {
        sum2 === 3 ? sum2 : sum2 += 3;
    } else if ($(this).val() >= 21 && $(this).val() <=30) {
        sum2 === 4 ? sum2 : sum2 += 4;
    }
    $(".results-5").html(sum2);
});

2 个答案:

答案 0 :(得分:2)

完成后,您可以将它们添加到另一个函数中:

  function calcVal(num) {
    if (num <= 5) {
      return 1;
    } else if (num <= 12) {
      return 2;
    } else if (num <= 20) {
      return 3;
    } else if (num <= 30) {
      return 4;
    }
    return 0;
  }

  $(document).on("keyup", "input", function() {
    var sum1 = calcVal(parseInt($('.turkey').val(), 10));
    $(".results-4").html(sum1);

    var sum2 = calcVal(parseInt($('.chicken').val(), 10));
    $(".results-5").html(sum2);

    $(".results-6").html(sum1 + sum2);
  });

或者,简单地组合这些功能。另外,您可以通过消除重复计算来进一步减少代码(假设这不是一个例子)。我不知道你在计算什么,但据我所知,你只是根据输入的范围返回一个值:

{{1}}

答案 1 :(得分:0)

我没有对此进行测试,它在vanilla JS而不是JQuery中,但它应该对你有用 - 或者至少,结构应该有所帮助。

&#13;
&#13;
$(document).on("keyup", "input", function() { 
    var sum1 = 0;
    var turkey = parseInt($('.turkey').val(), 10);
    if($(this).val() <= 5){ 
        sum1 === 1 ? sum1 : sum1++;
    } else if ($(this).val() >=6 && $(this).val() <=12) {
        sum1 === 2 ? sum1 : sum1 += 2;
    } else if ($(this).val() >= 13 && $(this).val() <=20) {
        sum1 === 3 ? sum1 : sum1 += 3;
    } else if ($(this).val() >= 21 && $(this).val() <=30) {
        sum1 === 4 ? sum1 : sum1 += 4;
    }
    $(".results-4").html(sum1);
    var sum2 = 0;
    var chicken = parseInt($('.chicken').val(), 10);
    if($(this).val() <= 5){ 
        sum2 === 1 ? sum2 : sum2++;
    } else if ($(this).val() >=6 && $(this).val() <=12) {
        sum2 === 2 ? sum2 : sum2 += 2;
    } else if ($(this).val() >= 13 && $(this).val() <=20) {
        sum2 === 3 ? sum2 : sum2 += 3;
    } else if ($(this).val() >= 21 && $(this).val() <=30) {
        sum2 === 4 ? sum2 : sum2 += 4;
    }
    $(".results-5").html(sum2);
    //sorry this is vanilla JS, not jquery
    updateResult6();
});

function updateResult6(){
  var sum3 = document.getElementById("results-4") + document.getElementById("results-5");
  document.getElementById("results-6").innerHTML = sum3; 
}
&#13;
<p class="results-4"></p>
<p class="results-5"></p>
<p class="results-6" id="results-6"></p>
&#13;
&#13;
&#13;