Ответ 1
Используйте .closest()
, чтобы пройти дерево DOM до указанного селектора.
var classes = $(this).parent().closest('div').attr('class').split(' '); // this gets the parent classes.
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).
ТНХ
Используйте .closest()
, чтобы пройти дерево DOM до указанного селектора.
var classes = $(this).parent().closest('div').attr('class').split(' '); // this gets the parent classes.
Используйте .closest()
, который получает первый элемент предка, который соответствует данному селектору 'div'
:
var classes = $(this).closest('div').attr('class').split(' ');
EDIT:
Как отметил @Shef, .closest()
вернет текущий элемент, если он также будет DIV. Чтобы принять это во внимание, сначала используйте .parent()
:
var classes = $(this).parent().closest('div').attr('class').split(' ');
Это получает родительский элемент, если он является div. Затем он получает класс.
var div = $(this).parent("div");
var _class = div.attr("class");
Держите это просто!
var classes = $(this).parent('div').attr('class');