Элемент или его предки являются членами класса

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Как я могу проверить, является ли элемент или любой из его предков членом определенного класса? Насколько я знаю, .hasClass проверяет только сам элемент.

 <div class="myClass">
 <div>
   <div id='myElement'>
   </div>
</div>
</div>
<div id = 'notMyElement'>
</div>


$('myElement').anyAncestorHasClass('myClass') == true;
$('notMyElement').anyAncestorHasClass('myClass') == false;
  

Комментарии:

1. я думаю closest() , что это так.

2. Можете ли вы объяснить в формате кода. Пожалуйста, поместите свой HTML

Ответ №1:

Вы можете проверить длину объекта jQuery, возвращаемого .closest() методом.

Из документации:

Для каждого элемента в наборе найдите первый элемент, который соответствует селектору, проверив сам элемент и пройдя по его предкам в дереве DOM.

 if($('#myElement').closest('.myClass').length) {
  document.write('Class Exists');
}  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="myClass">
  <div>
    <div id='myElement'>
    </div>
  </div>
</div>
<div id='notMyElement'>
</div>