jQuery祖先使用jQuery对象

Mic*_*son 7 javascript jquery

我想用两个jQuery对象来检查祖先.它们没有ID,只能用作jQuery对象(如果你调用了DOM节点get()).jQuery is()只适用于表达式,所以这段代码是理想的但不起作用:

var someDiv = $('#div');

$('a').click(function() {
    if ($(this).parents().is(someDiv)) {
        alert('boo');
    }
}
Run Code Online (Sandbox Code Playgroud)

只是想看看一个元素是否是另一个元素的孩子,我想尽可能避免退回DOM领域.

Gar*_*eth 12

您可以使用index()方法检查列表中是否存在元素,以下工作是否可行?

var someDiv = $('#div');

$('a').click(function() {
    if ($(this).parents().index(someDiv) >= 0) {
        alert('boo');
    }
}
Run Code Online (Sandbox Code Playgroud)

来自#index参考.


Már*_*son 10

(this).parents().index(someDiv) >= 0正如@Gareth建议的那样,检查工作会很好.

然而,使用jQuery的祖先插件方式更快/更有效.