Как найти родителя элемента с проверкой наличия класса?

Доброго времени суток!

Имеется структура:
<ul class="parent">
     <li>Родитель</li>
     <li>Родитель</li>
     <li>
          Родитель
          <ul class="child">
               <li>Ребенок</li>
               <li class="active_link">Ребенок</li>
               <li>Ребенок</li>
          </ul>
     </li>
</ul>

<ul class="parent">
     <li>Родитель</li>
     <li>Родитель</li>
     <li>
          Родитель
          <ul class="child">
               <li>Ребенок</li>
               <li>Ребенок</li>
               <li>Ребенок</li>
          </ul>
     </li>
</ul>


Нужно провести проверку наличия класса .active_link и добавить класс к ul родителя .parent

Проверка на наличие класса:

if($(".child li").hasClass('active_link')){
          // найти ближайшего предка .parent и добавить класс .active_list
     }


Простите за глупый вопрос и заранее спасибо!
  • Вопрос задан
  • 6423 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$(elem).closest('.parent').addClass('active_list')
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@BarryHAllen
native javascript:
let element = document.getElementById(id),
parent = element.parentNode,
hasClass = parent.classList.contains(class)
console.log(hasClass);
Ответ написан
@Arik
?
$el.closest('.parent');
Ответ написан
Stimulate
@Stimulate
могу
$(this).closest('ul.parent').addClass('new_class');
Ответ написан
Amirez
@Amirez
В чем секрет кота Бориса?
вроде так, если по клику на li нужно проверить есть ли у его родителя ul класс .parent
jquery:
$('li').on('click', function(){
$(this).closest('ul').hasClass('parent');
})
Ответ написан
leni_m
@leni_m
ЧупаКобрус
$("li").on("click", function() {
    $(this).parents(".parent"); // ищет родителя по всему дереву с классом parent
    $(this).find(".child"); // ищет дитё элемента по всему дереву с классом child
});
Ответ написан
Ваш ответ на вопрос

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

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