列に2つの入力フィールドがあるテーブルがあります。子行の最初の入力フィールドの合計を計算し、列の親行の最初の入力フィールドに対応する合計を追加します。
現在、コードは正しく加算されますが、親の正しい入力フィールド (つまり、親行の対応する入力フィールド) に合計が設定されません。
jsFiddleを参照してください。
コード:
HTML:
<table>
<tr class="parent-realtor percent-text">
<td>
<h5>Realtor Percent</h5>
</td>
<td>
<input type="text" class="percent-total" /> //parent
<input type="text" onfocus="this.blur()" class="percent-data" />
</td>
<td>
<input type="text" class="percent-total" /> //parent
<input type="text" onfocus="this.blur()" class="percent-data" />
</td>
<td>
<input type="text" class="percent-total" /> //parent
<input type="text" onfocus="this.blur()" class="percent-data" />
</td>
<td>
<input type="text" class="percent-total" /> //parent
<input type="text" onfocus="this.blur()" class="percent-data" />
</td>
</tr>
<tr>
<td>
<h6>Contract Amount</h6>
</td>
<td>
<input type="text" data-parent="realtor" />
</td>
<td>
<input type="text" data-parent="realtor" />
</td>
<td>
<input type="text" data-parent="realtor" />
</td>
<td>
<input type="text" data-parent="realtor" />
</td>
</tr>
<tr class="percent-text">
<td>
<h6>Buyer's Agent</h6>
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
</tr>
<tr class="percent-text">
<td>
<h6>Seller's Agent</h6>
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
<td>
<input type="text" data-parent="realtor" class="percent" /> //child
<input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" />
</td>
</tr>
</table>
jQuery:
$('.percent').on('keyup', function () {
//calcRealtor();
var totals = [0, 0, 0, 0, 0, 0, 0, 0],
parent_name = $(this).data('parent'),
find_parent_row = $('tr.parent-realtor');
find_parent_row.nextUntil('[class="parent-realtor"]').find('input[data-parent="realtor"]').each(function () {
totals[$(this).parent('td').index() / 1 - 1] += +this.value;
});
find_parent_row.find('input').each(function (i) {
this.value = totals[i];
});
});