Как объединить более двух повторяющихся строк и суммировать значение в HTML-таблице с помощью jquery
Я учусь сhtml table
, Я хочу объединить больше, чем 2duplicate rows
и суммируйте значения в повторяющихся строках.
Мой стол стол E, xample:
название Количество
Джон 200
Джон 300
Джон 100
хариш 400
хариш 400
Ожидаемый результат:
название Количество
Джон 600
хариш 800
Я попробовал с приведенным ниже кодом jquery, но он объединяет только две повторяющиеся строки, если происходит более двух повторяющихся строк, он не объединяется, а добавляет значение и отображает дублирующую строку.
HTML-код:
<table>
<tr>
<td>Name</td>
<td>quantity</td>
<td>expired</td>
</tr>
<tr class="row">
<td class="id">A</td>
<td class="val">25</td>
<td class="date">date</td>
</tr>
<tr class="row">
<td class="id">A</td>
<td class="val">25</td>
<td class="date">date</td>
</tr>
<tr class="row">
<td class="id">A</td>
<td class="val">25</td>
<td class="date">date</td>
</tr>
<tr class="row">
<td class="id">A</td>
<td class="val">25</td>
<td class="date">date</td>
</tr>
<tr class="row">
<td class="id">B</td>
<td class="val">100</td>
<td class="date">date</td>
</tr>
<tr class="row">
<td class="id">C</td>
<td class="val">35</td>
<td class="date">date</td>
</tr>
<tr class="row">
<td class="id">C</td>
<td class="val">35</td>
<td class="date">date</td>
</tr>
</table>
Код Jquery:
var first_row = '<tr class="row"><td class="id">NULL</td></tr>';
var rowCount = 0;
var rowSum = 0;
$.each($('.row'), function (index, curRow) {
if ($(first_row).find('.id').text() != $(curRow).find('.id').text()) {
if (rowCount > 1) {
$(first_row).find('.val').text(rowSum);
$(first_row).find('.val').css('background-color','silver');
for (i = 0; i < rowCount; i++) {
$(first_row).next('.row').find('.val').remove();
$(first_row).next('.row').find('.date').remove();
$(first_row).next('.row').find('.id').remove();
}
}
first_row = $(curRow);
rowSum = 0;
rowCount = 0;
}
rowSum += parseInt($(curRow).find('.val').text());
rowCount += 1;
});
if (rowCount > 1) {
$(first_row).find('.val').text(rowSum);
$(first_row).find('.val').css('background-color','silver');
for (i = 0; i < rowCount; i++) {
$(first_row).next('.row').find('.val').remove();
$(first_row).next('.row').find('.date').remove();
$(first_row).next('.row').find('.id').remove();
}
}
Результат:
название количество истекший
Дата 100
Дата 25
Дата 25
B 100 дата
C 70 дата
Здесь я хочу в столбце Имя Все записи должны бытьdistinct
и количество для суммирования.
Пожалуйста, помогите мне с этим