Sum numbers returns NaN

南笙酒味 提交于 2019-12-02 18:04:18

问题


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.


回答1:


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

var numbers, sumNumbers = 0;



回答2:


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


来源:https://stackoverflow.com/questions/36091042/sum-numbers-returns-nan

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!