为什么这个简单的jQuery不起作用

时间:2011-10-22 12:29:13

标签: javascript jquery equation

$(function() {

    var div  = $('div');

    $('input').click(function() {
        if($(this).is(':checked')) {
            div.html(div.text() += 49);    
        } else {
            div.html(div.text() -= 49);      
        }
    });

});

这很疯狂,由于某种原因,+=-=标记错误的分配,为什么会这样?

顺便说一句,我没有使用此代码,我知道它很糟糕,我只是在测试+=

实施例! http://jsfiddle.net/dD73X/

3 个答案:

答案 0 :(得分:6)

您无法将某些内容分配给临时结果。请改用+-。此外,不需要使用复合运算符进行赋值,因为div.html(...)完全相同:它用加法/减法的结果替换div的文本。

更新:您似乎也想要进行整数加法(而不是字符串连接)。您需要包含parseInt,并制作代码:

 $('input').click(function() {
    if($(this).is(':checked')) {
        div.html(parseInt(div.text()) + 49);
    } else {
        div.html(parseInt(div.text()) - 49);
    }
});

答案 1 :(得分:0)

 div.html(parseInt(div.text(), 10) += 49); 

答案 2 :(得分:0)

这是另一种方式,它做同样的事情:http://jsfiddle.net/dD73X/2/

$(document).ready(function() {
    $('input').change(function() {
        var t = parseInt($('div').text(), 10);
        if ($('input').attr('checked')) {
            $('div').text(t += 49);
        }else{
            $('div').text(t -= 49);
        }
    });
});