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