jQuery data() возвращает неопределенное значение, attr() возвращает целое число
У меня есть следующий код:
alert($embellishment.data("embellishmentId"));
alert($embellishment.attr("data-embellishmentId"));
Первое предупреждение возвращается undefined
тогда как второе предупреждение возвращает целое число, 3
,
Я использую jQuery версии 1.7.2 (data
был добавлен с версией 1.4 я считаю)
Почему это? Должен ли я использовать data()
вообще если его не вернуть правильные значения?
1 ответ
Решение
ХОРОШО. Я нашел проблему, интерпретируя документы JQuery.
Когда вы пишете:
$embellishment.data("embellishmentId");
он обрабатывается jQuery как составной атрибут:
<div data-embellishment-id="3"></div>
Таким образом, для решения проблемы вы можете использовать нижний регистр в ключе данных, иначе он просто обращается к другому атрибуту.
<!-- HTML -->
<div data-embellishmentid="3"></div>
// JavaScript
$embellishment.data("embellishmentid");