2010-12-20 5 views
2

Was ich tun möchte, ist von der Liste auf Zahlen nur eine Zahl zu subtrahieren. Zum Beispiel habe ich in einer Tabelle folgenden Nummern und ich mag 4000 subtrahieren:Wie subtrahiere ich die Liste einzeln?

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

Ein perfektes Ergebnis würde wie folgt aussehen:

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

Hier ist ein Link, was ich versucht habe schon:

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

+0

Mit subtrahieren meinen Sie entfernen? Nicht von jeder Zahl subtrahieren? – Orbling

+1

starrte auf Ihre Frage und den Code und haben keine Ahnung, was Sie versuchen zu tun. Bitte klären Sie –

+0

jes, nicht jeder aber von insgesamt. wie in Probe - 3000, 3500, 4000 und ich möchte 4000 subtrahieren. Ergebnis 3000 = 0, 3500 = 2500, 4000 = 4000got der Punkt? –

Antwort

1

Geht das, was Sie wollen? jsFiddle

EDIT: Neue Version!

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

fast - Problem ist, wenn Sie die var 4000 zu 4100 dann ändern zweite Zeile zuerst td ist richtig (2400), aber die dritte sollte immer noch 4000 sein, da die zweite nicht Null ist, aber jetzt ist es 1600 –

+0

@Tiit: Versuchen Sie diese neue Ausführung. –

+0

viel besser! Ich arbeite auch daran, aber ich bin jetzt fest mit var größer als 4800 und kleiner als 3000. wo ich versuche zu erreichen ist, dass die var maximal so groß wie start column total (in diesem Fall 10500) sein kann , aber normalerweise kleiner. Du bist wirklich hilfreich! Danke im Voraus! –

0

Wenn Sie eine Zeile löschen möchten, dass die erste Zelle als Zielnummer muss dann versuchen:

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