2016-03-18 9 views
0

Ich versuche, eine Summe von Zahlen innerhalb divs zu tun, also tat ich:Sum Zahlen gibt NaN

$(document).ready(function() { 
 
    var numbers, sumNumbers; 
 

 
    $(".item").each(function() { 
 
    \t numbers = $(this).children().text(); 
 
     numbers = +numbers; 
 
    
 
     sumNumbers += numbers; 
 
    }); 
 
    
 
    console.log(sumNumbers); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="item"> 
 
    <span class="itemNum">0</span> 
 
</div> 
 

 
<div class="item"> 
 
    <span class="itemNum">2</span> 
 
</div> 
 

 
<div class="item"> 
 
    <span class="itemNum">1</span> 
 
</div>

Aber gleiche die numbers von Text konvertieren nummerieren mit +numbers ist NaN zurück, warum? Ich habe bereits mit Number(numbers) auch versucht, aber das Ergebnis ist das gleiche.

Antwort

9

Sie haben nicht sumNumbers initialisieren, so erhalten Sie undefined + a number = NaN

var numbers, sumNumbers = 0; 
+0

Omg, so einfach ist das! Vielen Dank! – Igor

1

Versuchen Sie, diese

var numbers=0, sumNumbers=0; //initilize numbers & sumNumbers; 

$(".item").each(function() { 
    numbers = $(this).children().text() * 1; // *1 convert string to number 

    sumNumbers += numbers; 
}); 

console.log(sumNumbers); 
+0

'Zahlen + =' ??? – Musa