Wie kombiniert man mehr als 2 doppelte Zeilen und summiert den Wert in der HTML-Tabelle mit jquery
Ich bin stuct mithtml table
. Ich möchte mehr als 2 @ kombinierduplicate rows
und summiere die Werte in den doppelten Zeilen.
Meine Tabelle Tabelle E, Beispiel:
Nam Meng
john 200
john 300
john 100
harish 400
harish 400
Erwartetes Ergebnis
Nam Meng
john 600
harish 800
Ich habe es mit dem folgenden JQuery-Code versucht, aber es werden nur zwei doppelte Zeilen zusammengeführt. Wenn mehr als zwei doppelte Zeilen auftreten, werden diese nicht zusammengeführt, sondern es wird ein Mehrwert erzielt und eine doppelte Zeile angezeigt.
HTML Quelltext
<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 Code:
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();
}
}
Ergebnis
Nam Meng abgelaufe
A 100 date
A 25 date
A 25 date
B 100 date
C 70 date
Hier möchte ich in der Spalte Name Alle Datensätze sollten @ sedistinct
und zu summierende Menge.
Bitte hilf mir bei diesem