2016-12-01 3 views
0

Ich habe 4-5 dynamisch erstellt Tabellen mit PHPSum Menge und Preis in den Tabellen

<table class="table11"> 
    <tbody> 
    <tr> 
     <td>Name</td> 
     <td class="quantity">2</td> 
     <td class="price">20</td> 
     <td class="sum_one">40</td> 
    </tr> 
    <tr> 
     <td>Name</td> 
     <td class="quantity">1</td> 
     <td class="price">30</td> 
     <td class="sum_one">30</td> 
    </tr> 
    <tr> 
     <td></td> 
     <td class="total_quantity">3</td> 
     <td></td> 
     <td class="total_sum">70</td> 
    </tr> 
    </tbody> 
</table> 

<table class="table11"> 
    <tbody> 
    <tr> 
     <td>Name</td> 
     <td class="quantity">1</td> 
     <td class="price">10</td> 
     <td class="sum_one">10</td> 
    </tr> 
    <tr> 
     <td>Name</td> 
     <td class="quantity">2</td> 
     <td class="price">10</td> 
     <td class="sum_one">20</td> 
    </tr> 
    <tr> 
     <td></td> 
     <td class="total_quantity">3</td> 
     <td></td> 
     <td class="total_sum">30</td> 
    </tr> 
    </tbody> 
</table> 

Ich mag würde alle Preise in der Tabelle und zeigt in total_sum summieren.

Ich habe dies versucht:

var sum = 0; 
var quantity = 0; 
var sum1 = 0; 
$('.price').each(function() { 
    var price = $(this); 
    var q = price.closest('tr').find('.quantity').html(); 
    sum += parseInt(price.html()) * parseInt(q); 
    quantity += parseInt(q); 
    sum1 = 0; 
    sum1 += parseInt(price.html()) * parseInt(q); 
    price.closest('tr').find('.sum_one').html(sum1); 
}); 

console.log(sum); 

$('table.table11 tr:last-child').find('.total_sum').html(sum); 

Welche nicht funktioniert, in der Konsole es die Summe protokolliert, das ist richtig, aber in den Tabellen es ändert sich nicht.

Wie kann ich die Summen in jeder der Tabellen mit der relevanten Summe des Preises aktualisieren?

Da ich Zeilen dynamisch lösche, möchte ich die Summen entsprechend aktualisieren.

https://jsfiddle.net/qfjes1zj/ .... ich werde alle Summe Tabelle nach Tabelle und nicht vollständige Summe am Ende. jede Tischsumme.

+0

sein Diese Zeile zu viel Arbeit 'var q = price.closest ('tr') finden html(). ('Menge.');.'. Warum nicht einfach 'price.closest ('. Menge'). Html();' – TheValyreanGroup

+0

@TheValyreanGroup weil am nächsten sieht nicht auf Geschwister, so dass das nicht funktionieren würde ... – epascarello

Antwort

0

Versuch:

$(document).ready(function(){ 
    var sum = 0; 
var quantity = 0; 
var sum1 = 0; 
$('.price').each(function() { 
    var price = $(this); 
    var q = price.closest('tr').find('.quantity').html(); 
    sum += parseInt(price.html()) * parseInt(q); 
    quantity += parseInt(q); 
    sum1 = 0; 
    sum1 += parseInt(price.html()) * parseInt(q); 
    price.closest('tr').find('.sum_id').html(sum1); 
}); 



$('table.table11 tr:last-child').find('.total_price').html(sum); 
}); 

Berechnung nach Seite geladen wurde ausgeführt werden soll

1

Warum ist die td total_sum

<td class="total_sum">30</td> 

und aktualisieren Sie Gesamtpreis genannt ?

$('table.table11 tr:last-child').find('.total_price').html(sum); 

Es sollte nur

$('.total_sum').html(sum); 
+0

danke, ich muss schnell schreiben. aber es funktioniert nicht ... https://jsfiddle.net/qfjes1zj/ .... Ich werde alle Summe Tabelle für Tabelle und nicht vollständige Summe am Ende. jede Tischsumme. – joergi1988

+0

Der Code funktioniert korrekt, aber Ihre Fiddle enthält keine jQuery-Bibliothek, deshalb funktioniert es nicht. –

+0

ok. Ich werde es versuchen. aber die Summe in der nächsten Tabelle enthält die Summe aus der ersten Tabelle mit meinem Code. – joergi1988

Verwandte Themen