Как найти родителя с известным классом в jQuery?

У меня есть <div>, у которого есть много других <div> внутри него, каждый на другом уровне вложенности. Вместо того, чтобы давать каждому дочернему элементу <div> идентификатор, я скорее просто даю root <div> идентификатор. Вот пример:

<div class="a" id="a5">
  <div class="b">
    <div class="c">
      <a class="d">
      </a>
    </div>
  </div>
</div>

Если я напишу функцию в jQuery, чтобы ответить на класс d, и я хочу найти идентификатор для своего родителя, class a, как бы я это сделал? Я не могу просто сделать $('.a').attr('id');, потому что существует несколько классов a s. Я мог найти родителей родителей родителей ID, но это кажется плохой дизайн, медленный и не очень полиморфный (мне пришлось бы написать другой код для поиска ID для класса c).

Ответ 2

Передайте селектор функции jQuery parents:

d.parents('.a').attr('id')

EDIT Хм, на самом деле ответ Slaks превосходит, если вы хотите, чтобы ближайший предок соответствовал вашему селектору.

Ответ 3

Вы можете использовать родители(), чтобы получить всех родителей с данным селектором.

Описание: Получить предков каждого элемент в текущем наборе согласованных элементы, необязательно отфильтрованные селектор.

Но parent() получит только первый родительский элемент.

Описание: Получить родительский элемент каждого элемент в текущем наборе согласованных элементы, необязательно отфильтрованные селектор.

jQuery parent() vs. parents()

И есть . parentsUntil(), который, я думаю, будет лучшим.

Описание: Получить предков каждого элемент в текущем наборе согласованных элементов, вплоть до элемент, соответствующий селектору.