2010-12-20 39 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

如果你想刪除具有第一小區爲目標數行再試試:

​​