可以使用jQuery选择元素的祖先吗?

标记:

<div id="ancestor-1">
    <div>
        <a href="#" class="click-me">Click me</a>
    </div>
</div>
<div id="ancestor-2">
    <div>
        <a href="#" class="click-me">Click me</a>
    </div>
</div>

脚本:
$(".click-me").click(function(){
    // var ancestorId = ???;
    alert(ancestorId)
});

最佳答案

尝试 parent() 作为直接父元素。

$(".click-me").click(function() {
  var ancestor = $(this).parent();
  alert(ancestor)
});

parents() 用于所有匹配的祖先元素。
$(".click-me").click(function() {
  var ancestors = $(this).parents(".some-ancestor");
  alert(ancestors)
});

closest() 作为最接近的匹配元素(祖先或自身)。
$(".click-me").click(function() {
  var ancestor = $(this).closest(".some-ancestor");
  alert(ancestor)
});
parents()closest()之间的区别是细微但重要的。如果匹配,closest()将返回当前元素。 parents()仅返回祖先。许多人不希望返回当前元素。 closest()也只返回一个元素; parents()返回所有匹配的元素。

关于jquery - jQuery选择祖先,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2200775/

10-11 12:50