虽然网上有一些这样的例子,但它似乎并不正确.我想不出这个问题.

我有一个简单的HTML

<div id="foo" data-num="0"></ div>
<a href="#" id="changeData">change data value</a>

Every time I click the link "change data value" I want to update the data value of data-num. For example, I need it to be 1,2,3,4,... (plus 1 every time I click the link)

what I have is

var num = $('#foo').data("num");
console.log(num);
num = num+1;               
console.log(num);
$('#foo').attr('data-num', num);   

该值每次从0更改为1一次.我不能让它递增.对我做错了什么有什么建议吗?

推荐答案

THE ANSWER BELOW IS THE GOOD ONE

你没有正确使用data method.更新数据的正确代码是:

$('#foo').data('num', num); 

所以你的例子是:

var num = $('#foo').data("num") + 1;       
console.log(num)       
$('#foo').data('num', num); 
console.log(num)

Jquery相关问答推荐

使用jQuery筛选器搜索输入仅适用于单词的一部分

使用带有 bootstrap 验证的 Ajax 函数时出现问题

Sheets从多张sheet中导入range匹配数据

用 jQuery/JavaScript 检测数字或字母?

$ 不是函数 - jQuery 错误

jQuery:获取数据属性

ajax调用后Jquery事件不会触发

JSLint 错误:将调用移动到包含函数的括号中

javascript:无效(0); vs 返回 false vs preventDefault()

如何立即启动 setInterval 循环?

获取元素的底部和右侧位置

使用 jQuery 按字母顺序对选项元素进行排序

一组元素中具有最大高度的元素

测试空 jQuery Select 结果

javascript过滤对象数组

如何在 TypeScript 中获得 jQuery 自动完成功能?

jQuery位置href

jquery - 从一个非常大的表中删除所有行的最快方法

D3 和​​ jQuery 有什么区别?

如何在 jQuery 中取消绑定悬停?