2010-03-20 6 views
0

J'ai des problèmes pour calculer des choses sur mon application web. Voici le scénario:itérer chaque creux jquery

J'ai un balisage HTML comme ceci:

<table> 
    <tr> 
     <td><span class="sub_total">10</span></td> 
    </tr> 
    <tr> 
     <td><span class="sub_total">10</span></td> 
    </tr> 
    <tr> 
     <td><span class="sub_total">10</span></td> 
    </tr> 
</table> 

<p><span id="total"></span></p> 

Je voudrais calculer le total principal de tous les totaux sous:

var total; 
    $('.sub_total').each(function(){ 
     total = total + parseInt($(this).text()); 
    }); 

    $('#total').text(total); 

Mais je ne peux pas obtenir ceci pour travailler. Je reçois une notification NaN ..

Plz aide et des conseils

Salutation

Répondre

3

Vous devez initialiser total à 0:

var total = 0; // <-- initialize to zero 

$('.sub_total').each(function(){ 
    total = total + parseInt($(this).text()); 
}); 

$('#total').text(total); 
+1

vous pouvez également utiliser parseInt (___, 10) --specifier la base 10 - pour éviter que javascript interprète comme une base octale un nombre qui commence par un 0. – Plynx

+0

D'accord. Toujours spécifier la base. Même quand vous êtes sûr de ne pas avoir à le faire. –

+0

Aussi ... pourquoi ne pas sauvegarder quelques octets et utiliser l'opérateur '+ ='? 'total + = parseInt ($ (this) .text(), 10);' –