当我尝试获取图像的循环属性的值<img src="myimag.png" loop="3" />
jQuery函数返回“循环”但不是值。 它正常工作与所有其他人一样:元素的循环属性img
var src = $(this).attr('src');
var alt = $(this).attr('alt');
这是一个错误?
当我尝试获取图像的循环属性的值<img src="myimag.png" loop="3" />
jQuery函数返回“循环”但不是值。 它正常工作与所有其他人一样:元素的循环属性img
var src = $(this).attr('src');
var alt = $(this).attr('alt');
这是一个错误?
I did some digging显然loop
是布尔属性(loop="loop"
)。 The spec说:
布尔属性可以合法地采取单个值:该属性本身的名称(例如,
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
。
这似乎是一个jQuery的bug。
原生方法为您提供了正确的价值。
console.log($('img')[0].attributes.getNamedItem('loop').nodeValue);
好,它的工作原理,thx很多帮助:) – code19
loop
是一个布尔属性。 jQuery将返回属性本身的名称以用于布尔属性(也就是说,这也会发生在disabled
之内)。loop
也不再处于HTML规范中(http://www.w3.org/community/webed/wiki/HTML/)元/ IMG#HTML_Attributes),所以你不应该使用它。
我不是你的使用它的目的是既清楚。好像你或许应该使用data-loop
代替。然后你可以.attr('data-loop')
或.data('loop')
+1好回答。 – undefined
Thx搅拌机,我得到了! – code19