2

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

一个完美的结果应该是这样的:

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

这是我已经尝试过的链接:

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

4

2 回答 2

1

这是做你想做的吗? jsFiddle

编辑:新版本!

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;
    }
});
于 2010-12-20T16:59:58.940 回答
0

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

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();
  }
});
于 2010-12-20T16:08:30.330 回答