4

假设有以下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>
4

2 回答 2

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().

看:

于 2012-08-27T10:30:49.790 回答
2

您正在寻找.parents()运算符。

例子:

$('.child').parents('.gran-parent');
于 2012-08-27T10:32:48.120 回答