Подтвердить что ты не робот

JQuery найти первый родительский элемент с определенным префиксом класса

Я хочу получить первый родитель, у которого есть определенный префикс класса, предположим:

<div class="div-a3332"> 
  <div class="div-a89892">
    <p>
      <div class="div-b2">
        <div id="divid">hi</div>
      </div>
    </p>
  </div>
</div>

Например, мой текущий элемент #divid и я хочу найти первый элемент, который имеет префикс класса div-a. Поэтому в основном он выберет:

<div class="div-a89892">
4b9b3361

Ответ 1

Используйте .closest() с селектором:

var $div = $('#divid').closest('div[class^="div-a"]');

Ответ 2

Позднее JQuery позволил вам найти родителей с помощью .parents().

Поэтому я рекомендую использовать:

var $div = $('#divid').parents('div[class^="div-a"]');

Это дает всем родительским узлам, соответствующим селектору. Чтобы получить первого родителя, соответствующего селектору, используйте:

var $div = $('#divid').parents('div[class^="div-a"]').eq(0);

Для других подобных обходных запросов DOM ознакомьтесь с документацией по обходу DOM.