jQuery无法在UL元素上获取自定义属性

时间:2012-10-18 09:03:01

标签: jquery html firefox prop

我目前正在关注jQuery 1.8.2的以下问题。

自定义属性适用于例如输入字段:

<input id="test" required="true">

$("#test").prop("required")

true

$("#test").get(0).required

true

但不是UL元素。

<ul id="test" required="true"></ul>

$("#test").prop("required")

undefined

$("#test").get(0).required

undefined

为什么它不适用于Firefox 16中的UL元素但是在MSIE 8中?谢谢!

3 个答案:

答案 0 :(得分:4)

如果您出于某种原因需要使用自定义属性,请查看HTML5 data-属性。

<ul id="test" data-required="true"></ul>

console.log($('#test').data('required'));

http://ejohn.org/blog/html-5-data-attributes/

http://api.jquery.com/data/#data-html5

答案 1 :(得分:1)

这是因为HTML5 required是输入元素的有效属性,而jQuery返回此属性的值,而ul元素required只是一个无效的属性。 <{1}}元素没有ul属性,因此未定义。

http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-required-attribute

答案 2 :(得分:-1)

您必须使用:

$('#test').attr('required')