var classes = $(this).attr('class').split(' '); // this gets the current element classes
var classes = $(this).parent().attr('class').split(' '); // this gets the parent classes.
Родитель в приведенной выше ситуации - анкор.
Если бы я хотел получить первый родительский DIV для $ (this), как бы выглядел код?
var classes = $(this).div:parent().attr('class').split(' '); // just a quick try.
* В основном я хочу получить классы первого родительского DIV $ (this).
Спасибо
parents("div")
проходит и возвращает все родительские div, которые вы должны использовать.eq(0)
после него, чтобы убедиться, что он возвращает только тот, который вам нужен.parents('div').eq(0)
- использование этого селектора CSS кошелька, СЛЕДУЮЩЕГО jQuery для фильтрации только первого элемента, даст вам небольшое повышение производительности - см. Раздел «Дополнительные примечания» в jQuery: eq docclosest()
чтобы не возвращались все родители, кромеdiv
родителя.Use
.closest()
, который получает первый элемент-предок, соответствующий данному селектору'div'
:РЕДАКТИРОВАТЬ:
Как отметил @Shef,
.closest()
вернет текущий элемент, если он также является DIV. Чтобы принять это во внимание,.parent()
сначала используйте :источник
.closest()
будет соответствовать самому себе, если$(this)
является элементом DIV..parents("div").eq(0)
Это получает родительский элемент, если это div. Тогда это станет классом.
источник
Будь проще!
источник
два из лучших вариантов
и, конечно, вы можете найти атрибут класса по
источник