Я создаю список задач с родительскими и дочерними задачами. Они выложены в упорядоченном списке и вложены в много уровней, поэтому родительская задача может также иметь дочерние задачи и родительские задачи.JQuery collect Сумма значений внутри каждого вложенного раздела
Пример:
<div class="item-list">
<ol>
<li class="parent">
<div class="title">Im a task</div>
<div class="totalhours">total child hours here please</div>
<ol>
<li>
<div class="title">Im a task</div>
<div class="hours">5</div>
</li>
<li>
<div class="title">Im a task</div>
<div class="hours">10</div>
</li>
<li class="parent">
<div class="title">Im a task</div>
<div class="totalhours">total child hours here please</div>
<ol>
<li>
<div class="title">Im a task</div>
<div class="hours">5</div>
</li>
<li>
<div class="title">Im a task</div>
<div class="hours">10</div>
</li>
</ol>
</li>
</ol>
</li>
<li>Another task thats not a parent on this level</li>
</ol>
</div>
Таким образом, каждый уровень, я хотел бы иметь в общей сложности всех вложенных элементов. Таким образом, самая главная задача для родителей включает в себя часы ВСЕГО НЕСТАВАЯ часов div, а затем, если вы развернете его, каждый вложенный родитель делает то же самое для всех своих вложенных часов и так далее.
Это то, что я использую в данный момент, и его просто вычисление каждого часа div вместо того, чтобы вставлять только одно и то же число.
var totalest = $('li.parent .totalhours');
var sum = 0;
$("li .hours").each(function() {
var val = $.trim($(this).text());
if (val) {
val = parseFloat(val.replace(/^\$/, ""));
sum += !isNaN(val) ? val : 0;
}
totalest.html(sum);
});
Я надеюсь на этот результат
- Я задача Родителя 30 часов
- Im Целевых 5 часов
- Im Целевые 10 часов
- Im Родительская задача 15 часов
- Im задача 5 часов
- Im задача 10 часов
- Я другой родитель задачу 20 часов
- Im Целевых 5 часов
- Im Целевых 5 часов
- Im Родитель задача 10 часов
- Im задача 5 часов
- Im задача 5 часов
Закрыть спасибо. Я бегу, похоже, на данный момент собирает случайные числа, хотя некоторые из них вообще не суммируются. – Koldsnapz
Протестировано в jsfiddle, кажется, работает правильно – jsweazy
Это получилось совершенно на самом деле. Моя проблема, я думаю, в том, что изначально у меня не было отдельных часовых занятий. У меня были отдельные контейнеры, и он должен был запутаться. Такие, как .parent-details .hours и .child-details .hours Еще раз спасибо! @jsweazy – Koldsnapz