JQuery не может получить пользовательские атрибуты на элементах UL
В настоящее время я фокусируюсь на следующей проблеме с 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
Есть идеи, почему он не работает с элементами UL в Firefox 16, но в MSIE 8? Спасибо!
3 ответа
Решение
Если вам нужно использовать пользовательские атрибуты по той или иной причине, ознакомьтесь с HTML5 data-
атрибутов.
<ul id="test" data-required="true"></ul>
console.log($('#test').data('required'));
Это потому, что HTML5 required
является допустимым свойством для элементов ввода, а jQuery возвращает значение этого свойства, а для ul
элемент required
это просто неверный атрибут. ul
элемент не имеет required
свойство, поэтому оно не определено.
http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html