[英]calculating sum and subtraction of table row using jquery
i want to calculate sum of all columns
, and subtraction of col1 and col2
only, i found few examples online to add row data but how i can perform both action on one row.我想计算
sum of all columns
只计算subtraction of col1 and col2
,我在网上找到了几个例子来添加行数据,但是我如何在一行上执行这两个操作。 using class or id name.使用类或 ID 名称。
<table id="sum_table" width="450" border="1">
<thead>
<tr>
<th>column one</th>
<th >column two</th>
<th >column three</th>
<th >sum of all columns</th>
<th >subtraction</th>
</tr>
</thead>
<tbody>
<tr>
<td class="col1">1</td>
<td class="col2">2</td>
<td class="col3">3</td>
<td><span class="sum"></span> </td>
<td><span class="subtract"></span> </td>
</tr>
<tr>
<td class="col1">43</td>
<td class="col2">432</td>
<td class="col3">33</td>
<td> <span class="sum"></span> </td>
<td> <span class="subtract"></span> </td>
</tr>
</tbody>
</table>
<button id="calculate" onclick = "calculate()">calculate</button>
jquery:查询:
function calculate(){
var col1=$('.col1').text();
var col2=$('.col2').text();
var col3=$('.col3').text();
var sum= col1+col2+col3;
var subtract= col1-col2;
$(".sum").text(sum);
$(".subtract").text(subtract);
}
Please check this working example.请检查这个工作示例。
var col1=0,col2=0,col3=0,sum=0,subtract=0; function calculate(){ $(".jsTableBody tr").each(function(){ col1=$(this).find('.col1').text(); col2=$(this).find('.col2').text(); col3=$(this).find('.col3').text(); sum= parseInt(col1) + parseInt(col2)+ parseInt(col3); console.log(sum); subtract= parseInt(col1)-parseInt(col2); $(this).find(".sum").html(sum); $(this).find(".subtract").html(subtract); }) }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="sum_table" width="450" border="1"> <thead> <tr> <th>column one</th> <th >column two</th> <th >column three</th> <th >sum of all columns</th> <th >subtraction</th> </tr> </thead> <tbody class="jsTableBody"> <tr> <td class="col1">1</td> <td class="col2">2</td> <td class="col3">3</td> <td><span class="sum"></span> </td> <td><span class="subtract"></span> </td> </tr> <tr> <td class="col1">43</td> <td class="col2">432</td> <td class="col3">33</td> <td> <span class="sum"></span> </td> <td> <span class="subtract"></span> </td> </tr> </tbody> </table> <button id="calculate" onclick = "calculate()">calculate</button>
Loop through all the table tr
and use .find()
on the columns you need.循环遍历所有
table tr
并在您需要的列上使用.find()
。 I added .col
on each of the value columns so we won't need to specify the three columns on addition.我在每个值列上添加了
.col
,因此我们不需要在添加时指定三列。
function calculate() { var sum; var difference; $("tbody tr").each(function() { sum = 0; difference = 0; $(this).find(".col").each(function() { // console.log($(this).html()); sum += parseFloat($(this).html()); }); difference = parseFloat($(this).find(".col1").html()) - parseFloat($(this).find(".col2").html()); $(this).find(".sum").html(sum); $(this).find(".subtract").html(difference); }) }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="sum_table" width="450" border="1"> <thead> <tr> <th>column one</th> <th>column two</th> <th>column three</th> <th>sum of all columns</th> <th>subtraction</th> </tr> </thead> <tbody> <tr> <td class="col col1">1</td> <td class="col col2">2</td> <td class="col col3">3</td> <td><span class="sum"></span> </td> <td><span class="subtract"></span> </td> </tr> <tr> <td class="col col1">43</td> <td class="col col2">432</td> <td class="col col3">33</td> <td> <span class="sum"></span> </td> <td> <span class="subtract"></span> </td> </tr> </tbody> </table> <button id="calculate" onclick="calculate()">calculate</button>
Here's the answer using input fields;这是使用输入字段的答案;
$(document).ready(function() { $("#calculate").on("click", function() { var sum; var difference; $("tbody tr").each(function() { sum = 0; difference = 0; $(this).find(".col").each(function() { // console.log($(this).html()); sum += parseFloat($(this).find("input").val()); }); difference = parseFloat($(this).find(".col1").find("input").val()) - parseFloat($(this).find(".col2").find("input").val()); $(this).find(".sum").html(sum); $(this).find(".subtract").html(difference); }); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="sum_table" width="450" border="1"> <thead> <tr> <th>column one</th> <th>column two</th> <th>column three</th> <th>sum of all columns</th> <th>subtraction</th> </tr> </thead> <tbody> <tr> <td class="col col1"><input value="1" /></td> <td class="col col2"><input value="2" /></td> <td class="col col3"><input value="3" /></td> <td><span class="sum"></span> </td> <td><span class="subtract"></span> </td> </tr> <tr> <td class="col col1"><input value="43" /></td> <td class="col col2"><input value="432" /></td> <td class="col col3"><input value="33" /></td> <td> <span class="sum"></span> </td> <td> <span class="subtract"></span> </td> </tr> </tbody> </table> <button id="calculate">Sum </button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.