计算所有列的总和

我想计算所有列中父行的总和。 这就是我现在正在做的事[jsFiddle] :

HTML:

A
     
A1
     
A2
     
A3
     
B
     
B1
     
B2
     
B3
     

Total A + B

C
     
C1
     
C2
     
C3
     
D
     
D1
     
D2
     
D3
     

Total C + D

jQuery的:

 $(function () { $('[class*="parent-"] input').attr('readonly', true); $('input[type=text]').on('blur', function () { var totals = [0, 0, 0]; var $dataRows = $(".table"); var parent_name = $(this).data('parent'); var find_parent_row = $('tr.parent-' + parent_name); var $total_row = $('.total'); var total = 0; find_parent_row.nextUntil('[class*="parent-"]').find('input').each(function () { totals[$(this).parent('td').index() / 2 - 1] += +this.value; }); find_parent_row.find('input').each(function(i) { this.value = totals[i]; var tVal = parseFloat ( totals[i] ); if (tVal) { total += tVal; $total_row.find('input').eq(i).val( total ); } }); }); }); 

它的作用是它将显示父行的最后一个计算值,而不是像它应该那样添加它们。

小提琴演示

HTML

     

JS

 var total_par = $('tr.total'); total_par.each(function () { totals = [0, 0, 0]; var par = $(this).data('par').split(','); $('[data-parent="' + par[0] + '"]').add('[data-parent="' + par[1] + '"]').each(function () { totals[$(this).parent('td').index() / 2 - 1] += +this.value; }); $(this).find('input').val(function (i) { return totals[i]; }); });