嘿,我有一些像这样的标记
<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")
但是它没有起作用。
谢谢
嘿,我有一些像这样的标记
<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")
但是它没有起作用。
谢谢
你可以使用.closest()
,像这样:
$(this).closest("div").attr("id")
您可以在这里测试。
.parent("div")
并不像它看起来的那样直观,它只获取与选择器匹配的立即父级(如果有),而 .closest()
会向上遍历父级,直到找到与选择器匹配的元素。
请注意(此示例不适用),如果this
与选择器匹配,则返回该元素,它不是从第一个父级开始 查找,而是从自身开始。
.find()
方法,但是你只能有一个父路径,而子元素可以有多个分支...所以这取决于你想要什么。 - Nick Craver