Jquery 如何分别从数字列表中减去?

Jquery 如何分别从数字列表中减去?,jquery,list,html-table,subtraction,Jquery,List,Html Table,Subtraction,我想做的是从数字列表中减去一个数字。 例如,我在表格中有以下数字,我想减去4000: <table> <thead> <tr> <td>result</td> <td>start</td> <tr> </thead> <tbody> <tr> <td>0</td> <td

我想做的是从数字列表中减去一个数字。 例如,我在表格中有以下数字,我想减去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>

结果
开始
0
3000
0
3500
0
4000
完美的结果如下所示:

<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>

结果
开始
0
3000
2500
3500
4000
4000
以下是我已经尝试过的链接:


如果要删除第一个单元格作为目标编号的行,请尝试:

var targetNumber = 4000;

// Note, better to use the ID of the table instead of 'table' here
$('table tr').each(function() {
  var tCell = $(this).find('td:first');
  if (parseInt(tCell.text()) == targetNumber) {
    $(this).remove();
  }
});

这是你想要的吗

编辑:新版本

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;
    }
});
var减法=4000;
$('#tbl tbody tr')。每个(函数(){
var value=parseInt($(this).find('td:eq(1)').text());
var$result=$(this.find('td:eq(0)');
如果(减去>=值){
$result.text(0);
减去-=值;
}

否则如果(用减法减去,你的意思是删除?不是从每个数字中减去?盯着你的问题和JSFIDLE代码,不知道你想做什么。请澄清,不是每个,而是从总数中。比如在样本-3000,3500,4000中,我想减去4000。结果3000=0,3500=2500,4000=4000明白了吗?@Tiit:我很困惑,什么是你想怎么做?你怎么从3500和4000中得到2500?如果减去4000,3000+3500+4000=10500,我得到结果6500。但是我想这样做-首先,因为4000比3000大,我从3000中减去4000,得到结果1000,所以我取下一个(即3500)我从中减去剩下的1000,得到了2500,因为最后的4000没有被碰过,它将保持不变。最重要的问题是,当你把var 4000改为4100,那么第二行第一个td是正确的(2400)但是第三个值应该仍然是4000,因为第二个值不是零,但现在它好了很多!我也在研究它,但我现在被var大于4800小于3000所困扰。我试图达到的是var的最大值可以与起始列总和(在本例中为10500)一样大,但通常较小。你真的很有帮助!提前谢谢!@Tiit:我实际上更新了这个答案一百万次,尝试最新版本。它很有效!很有魅力!-我的第一个版本的相同结果超过200行javascript-太棒了-非常感谢!@Rocket-很好地破译了实际请求的内容