Ответ 1
Используйте .closest()
с селектором:
var $div = $('#divid').closest('div[class^="div-a"]');
Я хочу получить первый родитель, у которого есть определенный префикс класса, предположим:
<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">
Используйте .closest()
с селектором:
var $div = $('#divid').closest('div[class^="div-a"]');
Позднее JQuery позволил вам найти родителей с помощью .parents()
.
Поэтому я рекомендую использовать:
var $div = $('#divid').parents('div[class^="div-a"]');
Это дает всем родительским узлам, соответствующим селектору. Чтобы получить первого родителя, соответствующего селектору, используйте:
var $div = $('#divid').parents('div[class^="div-a"]').eq(0);
Для других подобных обходных запросов DOM ознакомьтесь с документацией по обходу DOM.