0

当用户单击我网站上的向上或向下按钮时,我正在尝试更新计数器。目前我有这个代码:

$(function() {
    $('.up').on('click', function() {
        updateQuantity(1);
    });

    $('.down').on('click', function() {
        updateQuantity(-1);
    });

    function updateQuantity(value) {
        // Get the current quantity
        var count = $('.value').html();

        // Change it according to value passed
        count += value;

        // Write back to HTML
        $('.value').html(count);
    }
});

它有点工作,但是当我单击向上/向下按钮时,它似乎被count视为一个字符串,我最终得到这样的输出:01110-1-1. 如何强制 JavaScript 计算新计数而不是连接字符串?

谢谢。

4

5 回答 5

3

转换为整数。

count += value;

并使用将字符串转换为整数parseInt(),因为var count = $('.value').html();这将返回 html 而不是整数值。

所以代码看起来像。

var count = parseInt($('.value').html());
count += value; // or count = count + value;

More About parseInt()

于 2013-03-22T04:05:18.493 回答
0

然后,您需要将其转换为整数。

 var count = parseInt($('.value').html());
于 2013-03-22T04:04:31.577 回答
0

count是一个字符串。您应该将其解析为整数:

var count = parseInt($('.value').text(), 10);
于 2013-03-22T04:04:36.007 回答
0

JavaSCript 具有将字符串更改为数字的 Number 函数

var count = Number($('.value').html());

count += Number(value);

请参阅此处的Number()函数

于 2013-03-22T04:04:54.883 回答
0

LIVE DEMO

$(function() { 
    $('.up, .down').on('click', function() {
      var v = parseInt( $('.value').val(), 10 );
      $('.value').val( $(this).hasClass('up') ? v += 1 : v -= 1 );
    });
});
于 2013-03-22T04:19:35.837 回答