2014-06-05 89 views
0

我使用impress.js作爲演示文稿,而不是將它用於花哨的東西,我只是希望幻燈片間距爲900px。我可能需要根據演示文稿的長度添加/刪除幻燈片,而不是更改每個data-y值,所以我想使用jQuery來遍歷每個幻燈片,併爲每個幻燈片位置添加900px。這裏是我正在使用的jQuery:使用jquery.each增加attr值()

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

但它沒有將值添加到我的html中的data-y屬性。我相信代碼是正確的,我只是不確定它爲什麼不起作用。

+1

你如何檢查你的HTML ???您是否在DOM中提供'.slide'元素時調用此片段? –

回答

2

data()功能嘗試用於改變數據值

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

從文檔

HTML5 DATA- *屬性

在jQuery 1.4.3 HTML 5中的數據 - 屬性會自動被 拉到jQuery的da ta對象。在jQuery 1.6中修改了 嵌入破折號屬性的處理方式,以符合W3C HTML5 規範。

+0

得分!謝啦。完美的作品。在時間限制結束時將標記爲答案。 – stacigh

+0

不客氣:) –

+0

等一下,這應該如何更新HTML?!這設置了數據對象的屬性,而不是屬性 –

1

爲此在更少的代碼,使用每個循環的索引作爲乘數

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

$('。slide')。 (函數(i){ $(this).data(「y」,(i * 900)); }); – halabuda

+0

代碼更高效,代碼不可讀。我更喜歡有效的方式。 –

+0

這不適合我。 – stacigh