Как выбрать первый родительский DIV с помощью jQuery?

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).

ТНХ

Ответ 1

Используйте .closest(), чтобы пройти дерево DOM до указанного селектора.

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

Ответ 2

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

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

EDIT:

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

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

Ответ 3

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

var div = $(this).parent("div");
var _class = div.attr("class");

Ответ 4

Держите это просто!

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