jQuery chaining parent(), есть ли более простой способ?
У меня есть такая разметка
<div id="some-id">
<h2><a href="#">Title</a></h2>
</div>
и некоторые JQuery, как это
$(this).parent().parent().attr("id")
$(this) ссылается на тег 'a' внутри 'h2'
Есть ли более простой способ выбрать родительский div без использования parent() дважды. Я старался
$(this).parent("div").attr("id")
но это не сработало.
Спасибо
1 ответ
Решение
Ты можешь использовать .closest()
, как это:
$(this).closest("div").attr("id")
Вы можете проверить это здесь. .parent("div")
не так интуитивно понятен, как кажется, он получает только непосредственного родителя, если он соответствует селектору, .closest()
лезет к родителям, пока не совпадет с селектором.
Обратите внимание, что (не относится к этому примеру), если this
соответствует селектору, он возвращает этот элемент, он не начинается с первого родителя, он начинается с самого себя.