2

画像のループ属性の値を取得しようとすると<img src="myimag.png" loop="3" /> 、jQuery 関数は「ループ」を返しますが、値は返しません。次のような他のすべてのもので問題なく動作します。

var src = $(this).attr('src');
var alt = $(this).attr('alt');

これはバグですか?

4

3 に答える 3

2

私はいくつかの掘り下げを行い、明らかloopにブール属性です(loop="loop")。仕様には次のように書かれています。

ブール属性は、正当に単一の値、つまり属性自体の名前 (例: selected="selected") を取ることができます。

これらのタイプの属性の残りの部分は次のとおりです。

rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i;

jQuery は、これらのタイプの属性を考慮して、属性の実際の値に関係なく、適切な属性値を返します。属性が存在する場合は、「true」に設定されます。


HTML 要素にデータを格納する場合は、data-属性を使用します。

<img src="myimag.png" data-loop="3" />

今、数値$('img').data('loop')を返します。 3

于 2012-09-27T04:54:34.303 に答える
0

jQueryのバグのようです。

ネイティブ メソッドは適切な値を提供します。

console.log($('img')[0].attributes.getNamedItem('loop').nodeValue);
于 2012-09-27T04:55:44.957 に答える
0

loopブール属性です。jQuery は、ブール属性の属性自体の名前を返します (つまり、これは同様に発生しdisabledます。 loopまた、HTML 仕様にも含まれなくなりました (http://www.w3.org/community/webed/wiki/HTML/Elements/ img#HTML_Attributes) であるため、使用しないでください。

あなたがそれを使用する目的が何であるかについても明確ではありません。おそらくdata-loop代わりに使用する必要があるようです。.attr('data-loop')その後、またはのいずれかを使用して通常どおりアクセスできます.data('loop')

于 2012-09-27T04:56:31.273 に答える