Javascript没有正确总结?

时间:2016-08-02 03:24:26

标签: jquery

这就是我在scripts.js中所拥有的

var player1score = 0;
if (currentPlayer === 1) {
    $("ul#player1scorelist").each(function() {
        player1score = parseInt(player1score) + parseInt($(this).text());
    });
    $("#player1totalscore").text(player1score);

    // ...
}

它应该让每个孩子都进入player1scorelist并返回子节点中数字的总和。相反,它结合了2个数字。

例如:

  • 3
  • 5
  • 6

显示为356。

在player1score上运行typeof会显示整数。

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您的问题是解析包含三个数字的父元素的文本。生成的文本是3个看起来像整数的数字。例如:

$('<ul><li>3</li><li>5</li><li>6</li></ul>').text() // = "356"

确保按照其他评论者的建议循环实际包含您想要求和的数字的元素,例如

$("ul#player1scorelist li").each(...)

答案 1 :(得分:0)

你的问题是解析父元素即ul,所以你得到ul的所有值,即356.你可以用其他方式使用和

var sum = $('#player1scorelist li').toArray().reduce(function(sum,element) {                        
    return sum + Number(element.innerHTML);
}, 0);