Суммирование стобцов
Есть 2 таблицы вида:
<form name = "View">
<table>
<tr>
<td><input name = "test_1" class="my_class" id = "sum_1"></td>
<td><input name = "test_2" class="my_class" id = "sum_2"></td>
<td><input name = "test_3" class="my_class" id = "sum_3"></td>
</tr>
</table>
<table>
<tr>
<td><input type = "text" name = "zzz_sum_1" class="class_test_n" value = "1"</td>
<td><input type = "text" name = "ppp_sum_2" class="class_test_p" value = "2"</td>
<td><input type = "text" name = "nnn_sum_3" class="class_test_n" value = "3"</td>
</tr>
<tr>
<td><input type = "text" name = "zzz_sum_1" class="class_test_n" value = "6"</td>
<td><input type = "text" name = "ppp_sum_2" class="class_test_p" value = "7"</td>
<td><input type = "text" name = "nnn_sum_3" class="class_test_n" value = "8"</td>
</tr>
</table>
</form>
Как просуммировать каждый столбец из второй таблицы (таблица значений) учитывая, что атрибут "name" каждого input -а содержит в себе id input-ового элемента для подсчета суммы ? |
<td><input type = "text" name = "zzz_sum_1" class="class_test_n" value = "1"</td> - ошибка, должно быть "><
Цитата:
var f = $('[name=View] input');
$.each(f.slice(3, -3), function(i, e) {
f.eq(i).val(+e.value + +f.eq(i+6).val())
})
|
Спасибо за корректировку. Но вопрос остается открытым...
|
Что-то не понятно?
|
вы задаете фиксированный размер массива, а если столбцов больше ?
|
Цитата:
|
var tbl = $('[name=View] table'),
sum = tbl.first().find('input'),
val = tbl.last().find('input'),
k=val.length/sum.length; //добавить если любое количество колонок/строк
//если любое количество колонок
$.each(val.slice(0, sum.length), function(i, e) {
sum.eq(i).val(+e.value + +val.eq(i+sum.length).val())
});
//если любое количество колонок/строк
for(var i=0; i<sum.length; ++i) {
var v = 0;
for(var j=0; j<k; ++j) v += +val.eq(i + j*sum.length).val();
sum.eq(i).val(v);
}
|
| Часовой пояс GMT +3, время: 01:23. |