简体   繁体   English

使用jquery计算表行的总和和减法

[英]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);
}

JSFiddle JSFiddle

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM