无法使javascript添加运算符正确添加
Cant get javascript addition operator to add correctly
我有一个按钮,每次单击它时,我都希望它在数据属性中添加5。出于某种原因,我很难弄清楚这一点。我尝试了几种不同的方法,但似乎都不适合我
var i = 5;
$(this).attr('data-count', ++i);
但由于某种原因,它只触发一次。如果我点击它,它会将数据属性设置为6,但如果我再次点击它,则它将保持在6。
然后我尝试了普通的javascript添加运算符,但它的操作不正确。
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);
}
});
});
,需要记住的几件事
ajquery
标识以data
开头的属性,因此为了提取它,您可以简单地使用.data('attr')
而不是.attr('data-attr')
b为了增加一个值,您需要将其附加到现有值上,因此您需要:$(this).data('count', $(this).data('count') + (++i));
。
$( 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'));
});
示例:https://jsfiddle.net/DinoMyte/1e0fvkng/
- "问题"
初始化:$this.data('count', 0)
onclick:$this=$(this);$this.data('count', $this.data('count')+5)
- "问题"
newcount = x++y
原因是y是一个字符串,当您使用attr
而不是data
时。。。
提示:您可以使用对象作为数据,例如:$(this).data('prop', {count:0});$(this).data('prop').count+=5;
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 这是什么 ==- javascript 运算符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 扩展Nashorn-ecma引擎以添加新的运算符和类型
- 我需要添加一个变量而不添加(使用算术运算符)
- 条件运算符,简化添加后检查结果的方法
- 在 JavaScript 中添加/除法/乘以数组中的数字和运算符,而无需 eval()
- Javascript中添加的最新运算符是什么?
- 无法使javascript添加运算符正确添加
- Babel v6:我如何/可以编写一个添加新语法(即新运算符)的插件