jQuery chaining parent (), есть ли более простой способ? - PullRequest
6 голосов
/ 13 октября 2010

Хей, у меня есть такая разметка, как эта

<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 Ответ

14 голосов
/ 13 октября 2010

Вы можете использовать .closest(), например:

$(this).closest("div").attr("id")

Вы можете проверить это здесь ..parent("div") не так интуитивно понятен, как кажется, он получает только немедленный родитель , если соответствует селектору, .closest() взбирается на родителей , пока не совпадет с селектором.

Обратите внимание, что (не относится к этому примеру), если this соответствует селектору, он возвращает этот элемент, он не запускается сПервый родитель, он начинается с себя.

...