Note that there are some explanatory texts on larger screens.

plurals
  1. POCalculate sum of columns
    text
    copied!<p>I have table in which the columns have two input fields. I want to calculate the sum of the <strong>first</strong> input field of the child rows and add the total corresponding to the first input field of the parent row of the column. </p> <p>Right now with the code, it does add up correctly but it doesn't set the total in the correct input fields of the parent (that is, in the corresponding input field of the parent row). </p> <p>Please see <a href="http://jsfiddle.net/4TnqY/" rel="nofollow">jsFiddle</a>.</p> <p><a href="http://jsfiddle.net/R5Cjw/" rel="nofollow">Updated Fiddle</a></p> <p>Code:</p> <p><strong>HTML:</strong></p> <pre><code>&lt;table&gt; &lt;tr class="parent-realtor percent-text"&gt; &lt;td&gt; &lt;h5&gt;Realtor Percent&lt;/h5&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" class="percent-total" /&gt; //parent &lt;input type="text" onfocus="this.blur()" class="percent-data" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" class="percent-total" /&gt; //parent &lt;input type="text" onfocus="this.blur()" class="percent-data" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" class="percent-total" /&gt; //parent &lt;input type="text" onfocus="this.blur()" class="percent-data" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" class="percent-total" /&gt; //parent &lt;input type="text" onfocus="this.blur()" class="percent-data" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;h6&gt;Contract Amount&lt;/h6&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr class="percent-text"&gt; &lt;td&gt; &lt;h6&gt;Buyer's Agent&lt;/h6&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr class="percent-text"&gt; &lt;td&gt; &lt;h6&gt;Seller's Agent&lt;/h6&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;td&gt; &lt;input type="text" data-parent="realtor" class="percent" /&gt; //child &lt;input type="text" data-parent="realtor" class="percent-data r" onfocus="this.blur()" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; </code></pre> <p><strong>jQuery:</strong></p> <pre><code>$('.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]; }); }); </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload