2011-10-28 58 views
1

我試圖讓使用jQuery 1.6.2 div元素的屬性jQuery的獲得元素的屬性 '迴路'

HTML

<div id="scroller" loop="2"></div> 

JS

$('#scroller').attr('loop') 

以上JS總是返回undefined。

我嘗試將jquery升級到1.6.4,然後相同的js給我返回單詞'loop'。這個循環屬性是一個保留屬性嗎?

我這樣做becoz使用庫滾動text.http的://remysharp.com/2008/09/10/the-silky-smooth-marquee/

回答

3

到底發生了什麼上是jQuery的執行attrloop is a boolean attribute for media (<audio> and <video>) elements,所以它的存在表明音頻或視頻應該循環。

使用布爾屬性時,指定屬性名稱本身以外的值是無效的。當jQuery檢查布爾屬性時,它會返回屬性本身的名稱。在這種情況下,[loop]的值是其名稱:"loop"


除非你使用HTML5中指定的 [data-]屬性

你不應該添加自定義屬性的元素:

<div id="scroller" data-loop="2"></div> 

jQuery的支持訪問這些[data-]data功能屬性:

$('#scroller').data('loop'); //returns "2" 
+3

'loop'看起來有些特別,這裏http://jsfiddle.net/F4nx3/ – xdazz

+0

檢查這是完全正確的。我也會好奇「循環」變量的作用。當然,如果它用於跟蹤循環次數,這是可以存儲在JS變量而不是DOM節點中的東西嗎?我在Remy的標記中沒有看到任何「循環」。 –

+0

@xdazz,那麼我的第二點仍然存在。除非你使用'[data-]'屬性,否則你不應該編寫自己的屬性。 – zzzzBov

1

也許,「循環」是jQuery的一些預定義值。所以,這是一個jQuery錯誤。

使用這個簡單的JS:

document.getElementById("scroller").getAttribute("loop") 
+1

+1 http://jsfiddle.net/F4nx3/3/ –

0

看來,這是一個錯誤。

document.getElementById("scroller").getAttribute("loop")將返回2.