Igor
Igor

Reputation: 673

Sum numbers returns NaN

I'm trying to do a sum of numbers inside div's, so, I did:

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

    $(".item").each(function() {
  	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>

But, same converting the numbers from text to number with +numbers is returned NaN, why? I've already tried with Number(numbers) too but the result is the same.

Upvotes: 1

Views: 10541

Answers (2)

Musa
Musa

Reputation: 97672

You didn't initialize sumNumbers, so you get undefined + a number = NaN

var numbers, sumNumbers = 0;

Upvotes: 13

Ibrahim Khan
Ibrahim Khan

Reputation: 20740

Try this

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

Upvotes: 2

Related Questions