计算所有列的总和
我想计算所有列中父行的总和。 这就是我现在正在做的事[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]; }); });