在表中添加行块的值

我不确定我怎么能解决我的问题,但我有一个包含多个标题行及其各自子行的表。 子行应该相加并设置标题行的值。 我怎样才能有效地做到这一点?

 //header row  //sub-row  //sub-row  //header row //sub-row //sub-row  //header row  //sub-row 
A
A1
A2
B
B1
B2
C
C1

子行A1 + A2应设置A输入的总和。 B1 + B2应该加起来B等等。

我能想到的一种方法就是这样:

  A //header row    A1 //sub-row    A2 //sub-row   var finalresult = 0, $a = $('.asub'), $ares = $('#a'); $.each($a, function(i) { var aVal = parseFloat( $a.eq(i).value() ); if (aVal) { finalresult += aVal; $ares.val( finalresult )); } }); 

但是我必须为每个标题行多次执行此操作。 有没有更好的方法?

您可以使用数据属性 。 您可以在jQuery中使用.data访问它们。

输入元素可以是这样的 。 这样,您可以使用sub类循环元素并读取父级以了解要增加的值。

如果愿意,可以将data-parent属性放在

标记上。

希望这有帮助。

[编辑]:添加了示例

  A    A1    A2   

在JavaScript中:

  $('.child-row').each( function(i) { var input = $(this).find('input'); var parent = input.attr('data-parent'); // Could use the [.data](http://api.jquery.com/data/) function. $(parent).val(parseFloat($(parent).val())+1); // If you need to add values of child-rows' input elements you could use the one below // $(parent).val(parseFloat($(parent).val())+parseFloat(input.val())); });