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");
Другие вопросы по тегам