在表中添加行块的值
我不确定我怎么能解决我的问题,但我有一个包含多个标题行及其各自子行的表。 子行应该相加并设置标题行的值。 我怎样才能有效地做到这一点?
A //header row A1 //sub-row A2 //sub-row B //header row B1 //sub-row B2 //sub-row C //header row C1 //sub-row
子行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())); });