Search code examples
jquerylisthtml-tablesubtraction

How to subtract from list of numbers individually?


What I want to do is subtract from list on numbers just one number. For example I have in a table following numbers and I want to subtract 4000:

<table>
<thead>
   <tr>
      <td>result</td>
      <td>start</td>
   <tr>
</thead>
<tbody>
   <tr>
      <td>0</td>
      <td>3000</td>
   </tr>
   <tr>
      <td>0</td>
      <td>3500</td>
   </tr>
   <tr>
      <td>0</td>
      <td>4000</td>
   </tr>
</tbody>
</table>

A perfect result would look like this:

<table>
<thead>
   <tr>
      <td>result</td>
      <td>start</td>
   <tr>
</thead>
   <tbody>
   <tr>
      <td>0</td>
      <td>3000</td>
   </tr>
   <tr>
      <td>2500</td>
      <td>3500</td>
   </tr>
   <tr>
      <td>4000</td>
      <td>4000</td>
   </tr>
   </tbody>
</table>

Here's a link what I've tried already:

http://jsfiddle.net/tiitremmel/LBjVJ/9/


Solution

  • Does this do what you want? jsFiddle

    EDIT: New Version!

    var subtract = 4000;
    
    $('#tbl tbody tr').each(function(){
        var value = parseInt($(this).find('td:eq(1)').text());
        var $result = $(this).find('td:eq(0)');
    
        if(subtract >= value){
            $result.text(0);
            subtract -= value;
        }
        else if(subtract <= 0){
            $result.text(value);
        }
        else{
            $result.text(value-subtract);
            subtract -= value;
        }
    });