单击时从数据属性获取更新值

时间:2013-10-17 08:41:23

标签: javascript jquery

我遇到从数据属性获取更新值的问题!

点击此处http://jsfiddle.net/Jim_Toth/ZLJbt/show/

点击(多少?),警报将为您提供当前值

但是点击(添加一个?)后会将+1添加到当前值

如果你再次点击(多少?),你将获得之前的旧价值

那么如何获得更新的价值而不是我之前得到的旧版本?

检查此处的代码http://jsfiddle.net/Jim_Toth/ZLJbt/

$('div').click(function () {
    alert($(this).data('foo'));
});

var div = 1;
$('button').click(function () {
    $('div').attr('data-foo', div);
    div += 1;
});

2 个答案:

答案 0 :(得分:5)

jQuery .data()仅使用data-*初始化数据值...如果要修改则使用.data() sto设置值

您应该设置.data()而不是attr()

var div = 1;
$('button').click(function () {
    $('div').data('foo', div);
    div += 1;
});

演示:Fiddle

答案 1 :(得分:1)

演示:http://jsfiddle.net/ZLJbt/2/

$('div').click(function () {
    alert($(this).data('foo'));
});

$('button').click(function () {
    var count = $('div').data('foo') || 0;
    $('div').data('foo', count + 1) ;
});