2010-12-20 96 views
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/

+0

通过减去,你的意思是删除?不是从每个数字中减去? – Orbling 2010-12-20 16:06:09

+1

盯着你的问题和jsfiddle代码,不知道你想做什么。请澄清 – 2010-12-20 16:09:46

+0

耶稣,不是每个,但总数。像在样品-3000,3500,4000,我想扣分4000.结果3000 = 0,3500 = 2500,4000 = 4000点的? – 2010-12-20 16:10:29

回答

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; 
    } 
}); 
+0

几乎 - 问题是当你将var 4000更改为4100时,第二行第一个td是正确的(2400),但第三个应该仍然是4000,因为第二个不是零,但现在是1600 – 2010-12-20 17:10:27

+0

@Tiit:试试这个新的版。 – 2010-12-20 19:02:27

+0

好多了!我也在努力,但我现在坚持使用大于4800且小于3000的var。我试图达到的是var可以与开始列总数(在本例中为10500)的max相同, ,但通常较小。你真的很有帮助!提前致谢! – 2010-12-20 19:25:32

0

如果你想删除具有第一小区为目标数行再试试:

​​