为什么这个简单的 jQuery 不起作用
$(function() {
var div = $('div');
$('input').click(function() {
if($(this).is(':checked')) {
div.html(div.text() += 49);
} else {
div.html(div.text() -= 49);
}
});
});
这太疯狂了,由于某种原因 +=
和 -=
标记了错误的分配,为什么会这样呢?
顺便说一句,我没有将此代码用于任何用途,我知道它不好,我只是测试 +=
$(function() {
var div = $('div');
$('input').click(function() {
if($(this).is(':checked')) {
div.html(div.text() += 49);
} else {
div.html(div.text() -= 49);
}
});
});
This is crazy, for some reason the +=
and -=
flag up bad assignment, why so?
By the way, I'm not using this code for anything, I know its bad, I'm just testing the +=
Example! http://jsfiddle.net/dD73X/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能将某些内容分配给临时结果。请改用
+
和-
。另外,不需要使用复合运算符进行赋值,因为div.html(...)
正是这样做的:它用加法/减法的结果替换 div 的文本。更新:您似乎还想进行整数加法(而不是字符串连接)。为此,您还需要包含
parseInt
,使代码:You cannot assign something to a temporary result. Use
+
and-
instead. Also, there would be no need to assign with the compound operators becausediv.html(...)
does exactly that: it replaces the text of the div with the result of the addition/subtraction.Update: It seems that you also want to do integer addition (instead of string concatenation). You 'd need to include
parseInt
as well for that, making the code:这是另一种方法,它做同样的事情: http://jsfiddle.net/dD73X/2/。
Here is another way, which does the same thing: http://jsfiddle.net/dD73X/2/.