无法获取要正确添加的javascript添加运算符
我有一个按钮,每次我点击它,我希望它添加5到数据属性。出于某种原因,我很难弄明白这一点。我试过几种不同的方法,但似乎都不管用无法获取要正确添加的javascript添加运算符,javascript,jquery,ajax,operators,Javascript,Jquery,Ajax,Operators,我有一个按钮,每次我点击它,我希望它添加5到数据属性。出于某种原因,我很难弄明白这一点。我试过几种不同的方法,但似乎都不管用 var i = 5; $(this).attr('data-count', ++i); 但由于某种原因,它只会触发一次,如果我单击它,它会将数据属性设置为6,但如果我再次单击它,它将保持为6 然后,我尝试了普通的javascript add操作符,但它的操作不正确 var x = 5; var y = count; var newcount = x + y; $(thi
var i = 5;
$(this).attr('data-count', ++i);
但由于某种原因,它只会触发一次,如果我单击它,它会将数据属性设置为6,但如果我再次单击它,它将保持为6
然后,我尝试了普通的javascript add操作符,但它的操作不正确
var x = 5;
var y = count;
var newcount = x + y;
$(this).attr('data-count', newcount);
这个的输出是50,然后再次单击它是550,依此类推
我肯定我错过了什么,但我不确定我做错了什么
我真的很希望第一个例子能起作用,因为我想计算一下,因为我正在添加到一个现有的列表中,因为我的完整代码如下
$( document ).on( "click", "#showButton", function() {
var q = $(this).attr('data-q');
var type = $(this).attr('data-type');
var count = $(this).attr('data-count');
$(this).text('More');
var i = 5;
$(this).attr('data-count', ++i);
$.ajax({
dataType: 'html',
data: '',
type: 'POST',
url : '',
success: function(response) {
$('#responseContainer').append(response);
}
});
});
初始化:
$this.data('count',0)
onclick:
$this=$(this)$this.data('count',$this.data('count')+5)
newcount=x++y
attr
而不是data
时,y是一个字符串
提示:您可以使用对象作为数据,例如:$(this).data('prop',{count:0})$(此).数据('prop')。计数+=5代码>需要记住的事情很少
a.jquery
识别以数据开始的属性,因此为了提取它,您可以简单地使用.data('attr')
而不是.attr('data-attr')
b.为了增加一个值,需要将其附加到其现有值中,因此需要:$(this.data('count',$(this.data('count')+(++i))代码>
示例:因为每次单击它时,它都会将值设置为5,然后递增。将i
设置为当前值。这个问题很难由JavaScript的加法运算符引起。每次将i
初始化为5,然后用++i
覆盖数据计数中的任何值,该值始终为6。当然,每次都保持为6,用新的6
显式覆盖以前的6
。我很好奇,你怎么可能在浏览代码时想到除了6以外的任何其他值都可以被赋值。var i=5
行每次运行,而不是一次。var i=Number($(this).attr('data-count'))| 5代码>感谢数字克里斯,我将代码更改为var I=计数$(此).attr('data-count',++i+5);如果你想把这个作为一个答案,我会检查它是否正确。
$( document ).on( "click", "#showButton", function() {
var count = $(this).data('count');
$(this).text('More');
var i = 5;
$(this).data('count', $(this).data('count') + (++i));
alert($(this).data('count'));
});