jQuery链接parent(),有更简单的方法吗?

7

嘿,我有一些像这样的标记

<div id="some-id">
    <h2><a href="#">Title</a></h2>
</div>

并且一些像这样的jQuery

$(this).parent().parent().attr("id")

$(this)指的是'h2'标签内的'a'标签。

有没有更简单的方法选择父级div而不使用两次parent()。我尝试过

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

但是它没有起作用。

谢谢

1个回答

18

你可以使用.closest(),像这样:

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

您可以在这里测试.parent("div") 并不像它看起来的那样直观,它只获取与选择器匹配的立即父级(如果有),而 .closest()会向上遍历父级,直到找到与选择器匹配的元素。

请注意(此示例不适用),如果this与选择器匹配,则返回元素,它不是从第一个父级开始 查找,而是从自身开始。


.closest() 只会向上移动吗?还是也会向下移动? - dotty
1
@dotty - 如果你想找到子元素,可以使用.find()方法,但是你只能有一个父路径,而子元素可以有多个分支...所以这取决于你想要什么。 - Nick Craver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接