2010-08-17 5 views
2

Voici mon format HTML de la table:Comment calculer grand total de cellules de la table jquery

<table width="580" height="217" border="0" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td width="334">Product</td> 
    <td width="246">Price</td> 
    </tr> 
    <tr> 
    <td>Product One</td> 
    <td class="price">599</td> 
    </tr> 
    <tr> 
    <td>Product Two</td> 
    <td class="price">175</td> 
    </tr> 
    <tr> 
    <td>Product Three</td> 
    <td class="price">850</td> 
    </tr> 
    <tr> 
    <td>Product Four</td> 
    <td class="price">758</td> 
    </tr> 
</table> 

<p id="grandtotal"></p> 

Maintenant, comment puis-je calculer le grand total pour tous les produits et l'afficher au paragraphe avec id « GrandTotal »? ?

Remarque: La table est générée dynamiquement, c'est juste pour la démo.

Édité: Prix de classe ajouté pour le prix :), J'espère que cela aide.

+0

pouvez-vous ajouter des classes pour distinguer les cellules première et seconde colonne? Pourrait rendre la solution vraiment plus simple ... – Vinze

Répondre

6

Sur la base de votre mise à jour (et solution Jamiec) vous pouvez faire:

var sum = 0; 
$('.price').each(function() { 
    sum += parseFloat($(this).text()); 
}); 
$('#grandtotal').html(sum) 
+0

Super, fonctionne parfaitement pour moi –

2

Le code comme suit œuvres:

var sum = 0; 
$('tr:not(:first)').each(function(){ 
    sum += parseFloat($('td:eq(1)',$(this)).text()); 
}); 

$('#grandtotal').html(sum) 

Cependant, vous pouvez en faire beaucoup plus simple en changeant votre balisage pour mettre l'en-tête dans un nœud thead (éliminant ainsi le not(:first)) et placer une classe sur vos cellules indiquant la colonne "prix".

modifier: oublié le jsFiddle obligitory ->http://jsfiddle.net/S5Hbe/

+0

Fonctionne parfaitement avec celui-ci .., et si le prix est dans la quatrième colonne ?? que faire alors ???? –

+3

Il est clair que vous modifiez l'index dans 'eq (1)'. Cependant, c'est pourquoi vous devriez distinguer la colonne des prix avec sa propre classe si possible. – Jamiec

Questions connexes