如何查找包含特定选择器的父元素

时间:2012-08-27 10:29:02

标签: javascript jquery jquery-selectors

让我们假设有以下html结构(1) 从$('.child') element我可以$('.gran-parent') element访问$('.child').parent().parent();

无论如何,我认为这不是一个好方法,因为它不是通用的 我们假设$('。gran-parent')和$('。child')之间还有其他div。 从gran-parent开始,引用第一个父类$('.child')的最通用方法是什么?

<div class='gran-parent'>
    <div class='parent'>
        <div class='child'>
        </div>
    </div>
</div>

2 个答案:

答案 0 :(得分:5)

你想:

$('.child').closest(".grand-parent");

.closest会一直向上移动,直到找到.grand-parent。您也可以执行.parents(".grand-parent"),但这可能会返回多个结果,具体取决于您的DOM层次结构,因此您必须这样做:

.parents(".grand-parent").eq(0)

或:

.parents(".grand-parent").slice(0)

或:

.parents(".grand-parent:first")

所有这些都不如.closest()优雅。

请参阅:

答案 1 :(得分:2)

您正在寻找.parents()运营商。

示例:

$('.child').parents('.gran-parent');