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

dar*_*ryl 0 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);      
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

这很疯狂,出于某种原因+=并且-=标记了错误的任务,为什么呢?

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

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

Jon*_*Jon 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);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 而不是parseInt,我只是做了`div.text()*1 + 49`. (3认同)
  • 或者使用一元加:`+ div.text()+ 49`这是更易于理解的imo(至少不是`*1`). (3认同)
  • 换句话说,div.text()不是左值 - 你试图分配它,而你不能. (2认同)