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

Lor*_*ard 4 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>
Run Code Online (Sandbox Code Playgroud)

kar*_*m79 5

你要:

$('.child').closest(".grand-parent");
Run Code Online (Sandbox Code Playgroud)

.closest将继续遍历,直到找到.grand-parent.您也可以这样做,.parents(".grand-parent")但这可能会返回多个结果,具体取决于您的DOM层次结构,因此您必须执行以下操作:

.parents(".grand-parent").eq(0)
Run Code Online (Sandbox Code Playgroud)

要么:

.parents(".grand-parent").slice(0)
Run Code Online (Sandbox Code Playgroud)

要么:

.parents(".grand-parent:first")
Run Code Online (Sandbox Code Playgroud)

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

看到: