使用jquery .each()增加attr值

时间:2014-06-05 15:52:17

标签: javascript jquery html increment impress.js

我正在使用impress.js进行演示,而不是将它用于花哨的东西,我只是希望幻灯片彼此分开900px。我可能需要根据演示文稿的长度添加/删除幻灯片,而不是更改每个data-y值,我想使用jQuery循环浏览每个幻灯片并为每个幻灯片位置添加900px。这是我正在使用的jQuery:

var counter = 0;
$('.slide').each(function(){
    var posY = counter * 900;
    $(this).attr("data-y", posY);
    counter++;
});

但它没有将值添加到我的html中的data-y属性中。我相信代码是对的,我只是不确定它为什么不起作用。

2 个答案:

答案 0 :(得分:2)

尝试使用data()功能更改数据值

$(this).data("y", posY);

来自文档

HTML5数据 - *属性

  

从jQuery 1.4.3开始,HTML 5数据属性将自动生成   拉入jQuery的数据对象。用属性处理属性   在jQuery 1.6中更改了嵌入式破折号以符合W3C HTML5   说明书

答案 1 :(得分:1)

要在更少的代码中执行此操作,请使用每个循环的索引作为乘数

$('.slide').each(function(i){
    var posY = i * 900;
    $(this).data("y", posY);
});