Alexanevsky
@Alexanevsky
Любительская web-разработка

Почему не работает определение значения атрибута data-*?

Здравствуйте!

Есть блоки, среди которых, например:<div class="block" data-item="abc">

Мне необходимо с .block, имеющий значение атрибута data-item, заданного в переменной, что-нибудь сделать. Например, скрыть.

Пример.
Для начала: var attrDataItem = abc;

Затем пробую несколько вариантов, чтобы хотя бы один из них работал:
$('.block').data('item', attrDataItem).hide();
$('.block').attr('data-item', attrDataItem).hide();
$('[data-item=' + attrDataItem + ']').hide();

И работает только последний случай. Но здесь мы скрываем блок, имеющий data-item, как указано в переменной, вне зависимости от класса. Мне же необходимо скрывать блок только при совпадении одновременно двух условий:
  1. data-item такой, как указано в attrDataItem
  2. блок имеет класс .block


Как же это сделать?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
$('[data-item=' + attrDataItem + ']').hide();
Здесь, действительно идет выборка, но класс в селектор вы не добавили.

Правильный вариант такой (Интерактивный пример):
$('.block[data-item="' + attrDataItem + '"]').hide();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы