如何为不同元素的同名数据属性设置不同的值

时间:2014-03-19 12:24:26

标签: jquery

我有以下jquery点击事件

$(document).on('click', '.pagn', function(e) {
    e.preventDefault();
    var page = $(this).data('page');
    var type = $(this).attr('id');
    if(page>0 && type == 'prev') {
        prev = page - 1;
        next = page + 1;
    } else if(type == 'next') {
        next = page - 1;
        prev = page + 1;
    }
    console.log(next);
    $('#next').data('page', next);
    $('#prev').data('page', prev);

})

这是我的HTML

<li><a id="prev" class="tools prev pagn" data-page='0'></a></li>
<li><a id="next" class="tools next pagn" data-page='2'></a></li>

在上面的代码中,我无法为id next和prev。

设置数据属性值

如何解决它

1 个答案:

答案 0 :(得分:0)

要设置data-*属性,请使用attr

$('#next').attr('data-page', next);
$('#prev').attr('data-page', prev);

同样,如果你想读取属性(而不是jQuery的数据缓存),请在阅读时使用attr

var page = $(this).attr('data-page');

jQuery的data功能让很多人感到困惑。它不管理data-*属性。它的作用是管理与元素相关的数据,并从元素的任何data-*属性初始化该数据。这是唯一的连接:data字段的初始值来自data-*属性(如果有)。 data函数永远写入data-*属性。