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");