我需要添加从变量生成的值" 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);
});
答案 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中,但它应该对你有用 - 或者至少,结构应该有所帮助。
$(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;