Как вычесть из списка номеров индивидуально? - PullRequest
2 голосов
/ 20 декабря 2010

Что я хочу сделать, это вычесть из списка на числах только одно число.Например, я имею в таблице следующие числа и хочу вычесть 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/

Ответы [ 2 ]

1 голос
/ 20 декабря 2010

Делает ли это то, что вы хотите? 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;
    }
});
0 голосов
/ 20 декабря 2010

Если вы хотите удалить строку с первой ячейкой в ​​качестве целевого числа, попробуйте:

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();
  }
});
...