JQuery находит первый родительский элемент с определенным префиксом класса - PullRequest
114 голосов
/ 18 сентября 2011

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

<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">

Ответы [ 2 ]

206 голосов
/ 18 сентября 2011

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

var $div = $('#divid').closest('div[class^="div-a"]');
51 голосов
/ 08 мая 2013

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...