上/下单击计数器

时间:2011-04-15 20:51:54

标签: jquery html parsing counter

听起来非常简单,我很难管理它。

简单地说,如果我在按下shift键时单击一个id为“Counter”的元素,则Total包含的int应该会增加。如果单击时保持alt,则会下降。

$('#Counter').click(function(x) {
    if(x.altKey) {
        $('#Counter').html(parseInt($('#Total').html())-1);
    }
    if (x.shiftKey) {
        $('#Counter').html(parseInt($('#Total').html())+1);
    }
});

///////////

<div id="Counter"><span id="Total">100</span></div>

2 个答案:

答案 0 :(得分:2)

我可以看到您的问题,您想要将<span id="Total">100</span>解析为数字。你不能这样做。您还要将#counter的html设置为一个数字,这样您就会失去#Total

你想要的是:

$('#Counter').click(function(x) {
    if(x.altKey) {
        $('#Counter').html(parseInt($('#Counter').html())-1);
    }
    if (x.shiftKey) {
        $('#Counter').html(parseInt($('#Counter').html())+1);
    }
});

<div id="Counter">100</div>

答案 1 :(得分:1)

您正在覆盖span标记,这就是为什么它只适用于第一次点击,之后没有名称为Total

的span标记

尝试:

$('#Counter').click(function (x) {

        if (x.altKey) {
            $('#Counter').html('<span id="Total">' + (parseInt($('#Total').html()) - 1) + '</span>');

        }
        if (x.shiftKey) {
            $('#Counter').html('<span id="Total">' + (parseInt($('#Total').html()) + 1) + '</span>');
        }
    });

或者更简洁:

$('#Counter').click(function (x) {

        if (x.altKey) {
            $('#Total').html((parseInt($('#Total').html()) - 1));

        }
        if (x.shiftKey) {
            $('#Total').html((parseInt($('#Total').html()) + 1));
        }
    });