Показать сообщение отдельно
  #4 (permalink)  
Старый 11.11.2014, 16:03
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

noomad,
ок. Посчитать сумму данных в столбце можно например так:

<table>

<tr>
  <td>Сумма</td>
  <td></td>
</tr>

<tr>
  <td>Кастрюли</td>
  <td>10</td>
</tr>

<tr>
  <td>Ящики</td>
  <td>2</td>
</tr>

<tr>
  <td>Тигры</td>
  <td>12</td>
</tr>

</table>

<script>

var lines = document.querySelectorAll("tr"), summ = 0;
for (var i = 1; i < lines.length; i++) {
  summ += parseInt(lines[i].querySelectorAll("td")[1].innerHTML);
}
lines[0].querySelectorAll("td")[1].innerHTML = summ;

</script>



Теперь по алгоритму. Тут уже сложнее. Ну для начала вам надо получить строки таблицы (это уже описано выше). Затем я бы шел по строкам снизу вверх (то есть от i = lines.length-1) и считал сумму всех value. Как только мы встретили первый не value мы записываем в него сумму, обнуляем и идем дальше пока не кончатся все value. Потом заново идем по всем строкам (или в первом проходе заодно фильтруем и убираем отсуммированные строки) и считаем следующий по иерархии элемент. И так доконца. Я бы посоветовал расставить более вразумительные классы или атрибуты чтобы было проще понимать когда надо переходить к следующей группе подсчетов/на следующий круг. Надеюсь понятно написал.

Последний раз редактировалось tsigel, 11.11.2014 в 16:09.
Ответить с цитированием