jQuery检测上面未知级别的父母?

时间:2013-05-06 10:26:28

标签: jquery dom jquery-selectors parent-child parent

如何检测上述未知级别的父级?

例如:

<div id="parent-a">
    <....>
        <....>
            <div class="the-child" /> <!-- Comment 1 -->
        </....>
    </....>
</div>
<div id="parent-b">
    <....>
        <div class="the-child" /> <!-- Comment 2 -->
    </....>
</div>

<....> DOMS可能是其中任何未知元素(任意数量)。

然后,如果我从the-child Comment 1向上看,我怎么知道它的父母是div#parent-a

同样的事情,如果我从the-child Comment 2向上看,我怎么知道它的父母是div#parent-b

3 个答案:

答案 0 :(得分:2)

您可以使用jQuery&#39; parents()来完成此类任务。 但是你必须至少有一些你想要定位的父元素的标识符,所以,例如,这将有效:

// for version one
var parent = $( '.the_child' ).parents( '#parent-a' );

// for version two
var parent = $( '.the_child' ).parents( '#parent-b' );

在这两种情况下,返回第一个元素,它是the_child元素的祖先并匹配给定的选择器(如果存在)。

答案 1 :(得分:1)

尝试

if($('.the-child:first').closest('#parent-a').length){
    //success
}

但您可能必须将选择器$('.the-child')限制为点击的子项或特定子项,因为$('.the-child')将选择类the-child的所有元素

答案 2 :(得分:0)

使用jQuery parents http://api.jquery.com/parents/

if($('.the-child').parents('#parent-b').length>0){}