单击向上/向下时更新计数

时间:2013-03-22 04:02:41

标签: javascript jquery

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

$(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计算新计数而不是连接字符串?

感谢。

5 个答案:

答案 0 :(得分:3)

转换为Interger。

count += value;

使用parseInt()

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

所以代码看起来像。

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

More About parseInt()

答案 1 :(得分:0)

您需要将其转换为整数。

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

答案 2 :(得分:0)

count是一个字符串。你应该把它解析成一个整数:

var count = parseInt($('.value').text(), 10);

答案 3 :(得分:0)

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

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

count += Number(value);

在此处查看Number()功能

答案 4 :(得分:0)

LIVE DEMO

$(function() { 
    $('.up, .down').on('click', function() {
      var v = parseInt( $('.value').val(), 10 );
      $('.value').val( $(this).hasClass('up') ? v += 1 : v -= 1 );
    });
});