$("a#full_sub_total").click(function(event){
event.preventDefault();
var first = $("div#total_result").text();
var second = $("div#total_result1").text();
var third = $("div#total_result2").text();
var fourth = $("div#total_result3").text();
var fifth = $("div#total_result4").text();
$("#full_total_results p").text((parseInt(first,10) + parseInt(second,10) + parseInt(third,10) + parseInt(fourth,10) + parseInt(fifth,10)));
});
非常感谢任何帮助。
答案 0 :(得分:1)
基本技术:
var sum = 0;
var num1 = parseInt(text1, 10);
if (!isNaN(num1)) sum += num1;
// ...
(循环:更好的主意。)
答案 1 :(得分:1)
我会遍历total_result
字段,并逐步将其解析后的值添加到总变量中:
$("a#full_sub_total").on("click", function(){
var total = 0;
$("div[id^=total_result]").text(function(i,t){
total += parseInt( t, 10 ) || 0;
});
$(".full_total").text("$" + total);
});
注意所有这一切的主要部分:
total += parseInt( t, 10 ) || 0;
当尝试从元素文本中解析整数失败时,我们返回0。这不会抵消总价值,并且允许我们继续执行稍后出现的任何NaN
。
答案 2 :(得分:0)
你的整体NaN总结果的问题是,当一个或多个单独的行总数为空时,它会导致你的整体结果总数等于你想要添加的NaN(即#+#=#,#+ NaN =楠)
简化问题的解决方案:
$('#subtotal').click(function(e) {
e.preventDefault();
// Clear overall total
$('#overallTotal').empty();
// Loop through each line total
$('div.lineTotal').each(function() {
// If line total is not empty, add
if ($(this).text() != ''){
$('#overallTotal').text(parseInt($('#overallTotal').text) += parseInt($(this).text()));
}
});
});