Как выбрать первый родительский DIV с помощью jQuery? - PullRequest
92 голосов
/ 17 августа 2011
var classes = $(this).attr('class').split(' '); // this gets the current element classes

var classes = $(this).parent().attr('class').split(' '); // this gets the parent classes.

Родителем в вышеуказанной ситуации является ankor.

Если бы я хотел получить первый родительский DIV в $ (this), как бы выглядел код?

var classes = $(this).div:parent().attr('class').split(' '); // just a quick try.

* В основном я хочу получить классы первого родительского DIV в $ (this).

thx

Ответы [ 4 ]

151 голосов
/ 17 августа 2011

Используйте .closest() для перемещения по дереву DOM до указанного селектора.

var classes = $(this).parent().closest('div').attr('class').split(' '); // this gets the parent classes.
38 голосов
/ 17 августа 2011

Используйте .closest(), который получает первый элемент-предок, соответствующий данному селектору 'div':

var classes = $(this).closest('div').attr('class').split(' ');

РЕДАКТИРОВАТЬ:

Как отметил @Shef, .closest() вернетсятекущий элемент, если он также является DIV.Чтобы учесть это, сначала наберите .parent():

var classes = $(this).parent().closest('div').attr('class').split(' ');
9 голосов
/ 17 августа 2011

Это становится родителем, если это div. Тогда это получает класс.

var div = $(this).parent("div");
var _class = div.attr("class");
4 голосов
/ 29 марта 2013

Будьте проще!

var classes = $(this).parent('div').attr('class');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...