glk92
@glk92
Веб-разработчик

Как организовать слияние строк в HTML таблице посредством JavaScript?

Здравствуйте обитатели тостера!
Вопрос к экспертам в области JavaScript:
Как организовать слияние строк в HTML таблице посредством JavaScript?

Есть таблица:
<table>
   <tr><td>Значение 1</td><td>Количество 1</td></tr>
   ...
   ...
   <tr><td>Значение 1</td><td>Количество 2</td></tr>
   ...
   ...
</table>


Задача:
слияние строк таблицы с ячейкой "Значение 1" и суммирование в получившейся строке "Количество 1" и "Количество 2"

Результат:

<table>
  ...
  ...
  ...
  ...
  <tr><td>Значение 1</td><td>Количество (1+2)</td></tr>
</table>


-----------------------------------------
Подскажите функцию для реализации данной операции.
Заранее благодарен!
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
Можно поиграться с rows и cells и получить примерно такую функцию
function groupRows(table) {
    var uniqueRows = {},
    removedRows = [];

    [].forEach.call(table.rows, function (row) {
        var key = row.cells[0].textContent,
            value = +row.cells[1].textContent.split(' ')[1],
            sum;

        if (key in uniqueRows) {
            sum = uniqueRows[key].value + value;
            uniqueRows[key].row.cells[1].textContent = 'Количество ' + sum;
            uniqueRows[key].value = sum;
            removedRows.push(row);
        } else {
            uniqueRows[key] = {
                row: row,
                value: value
            };
        }
    });

    [].forEach.call(removedRows, function (row) {
        table.tBodies[0].removeChild(row);
    });
}


Пример работы функции
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы