</div> js $('#scroller').attr('loop')"> </div> js $('#scroller').attr('loop')"> </div> js $('#scroller').attr('loop')" />

jQueryは要素の属性 'loop'を取得します

私はjQuery 1.6.2を使ってdiv要素の属性を取得しようとしています

html

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

js

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

上記のjは常にundefinedを返します。

jqueryを1.6.4にアップグレードしようとすると、同じjsが私に「ループ」という単語を返します。このループ属性は予約済み属性ですか?

私はスクロールするためのライブラリを使用するこのbecozを行います.http://remysharp.com/2008/09/10/the-silky-smooth-marquee/

1

3 答え

What's really going on is jQuery's implementation of attr. loop is a boolean attribute for media ( and ) elements, so its presence indicates that the audio or video should loop.

ブール値属性を使用する場合は、属性名自体以外の値を指定することはできません。 jQueryがboolean属性をチェックすると、属性自体の名前が返されます。この場合、 [loop] の値はその名前です: "loop"


HTML5で指定された [data - ] 属性を使用していない限り、要素にカスタム属性を追加しないでください:

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

jQueryは、 data 関数でこれらの [data - ] 属性へのアクセスをサポートしています。

$('#scroller').data('loop'); //returns "2"
3
追加された
@ xdazz、私の2番目のポイントはまだ立っています。 [data - ] 属性を使用していない限り、独自の属性を作成すべきではありません。
追加された 著者 zzzzBov,
これはまさに正しいことです。私はまた、 "ループ"変数の役割について興味があります。確かにそれがループの数を追跡するためのものなら、これはDOMノードではなくJS変数に格納できるものですか?私はレミーのマークアップに "ループ"は見ません。
追加された 著者 Greg Pettit,
loop は特別なもののようです。 jsfiddle.net/F4nx3
追加された 著者 xdazz,
@zzzzBovはい、あなたは正しいですが、なぜ、 loop が特別なのか理由を知りたいのですが?
追加された 著者 xdazz,
この記事の時代にもかかわらず、上記の@zzzzBovからの回答が正しいのに対し、 .prop メソッドを使用してjQueryのループのbool値を取得することもできます。例えば $ el.prop( 'loop')
追加された 著者 Jim Frenette,

おそらく、 "loop"はjQueryにあらかじめ定義された値です。だから、それはjQueryのバグです。

シンプルなJSをこれに使用してください:

document.getElementById("scroller").getAttribute("loop")
1
追加された
追加された 著者 Nick Rolando,

これはバグだと思われます。

document.getElementById("scroller").getAttribute("loop") will return 2.

0
追加された