Задать вопрос

Как работать с атрибутами data-* в jQuery?

Доброе время суток.
Итак, господа. Занялся тут написанием небольшой библиотеки js для своих проектов, в общем, сейчас делаю модельное окно адаптивное. Мне надо в него передавать атрибут с заголовком из div. Суть такая: есть div с модельным окном. В нем есть тег h3, в него хочу вставить значение атрибута из другого блока. Но проблема в том, что атрибуты html5 (data-modal-name="title" в моем случае) у меня не получается получить. Любые стандартные html атрибуты работают само собой.
Писал по разному. Сейчас есть:
$(selector).data('modalName');
var test = $(selector).att('data-modal-name');
Alert(test);
Но у меня выволит alert undefined. В общем, облазил всё, не смог найти ничего, что заставило бы это работать
  • Вопрос задан
  • 1670 просмотров
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 5
sabramovskikh
@sabramovskikh
$(selector).data('modal-name'); не?
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Используйте метод jQuery .data():
<div id="mydiv" data-modal-name="Ololo"></div>
var modalName = $('#mydiv').data("modal-name");
Fiddle
Ответ написан
Комментировать
@AndryG
alert($('#1').data('modalName'))

Черточка в названии - это способ обозначить верхний регистр в регистронезависимом HTML.
api.jquery.com/data/#data-html5
Ответ написан
Комментировать
werty1001
@werty1001
undefined
$(selector).att('data-modal-name');
нужно
$(selector).attr('data-modal-name');
Ответ написан
Комментировать
@v-orlov
var text = $(#div).attr('data-modal-name');  // получили содержимое дата-атрибута - текст из дива
alert (text);  // в алерте должно выводиться это содержимое
$(#h3).text(text); // запихнули этот текст в h3


проблема может быть с тем, что эти селекторы не находятся через кучу родителей и тд. но теста ради можно с id попробовать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы