1

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

例如:

<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那么如果我从at向上看Comment 1,我怎么知道它的父母是div#parent-a

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

4

3 回答 3

2

您可以将 jQueryparents()用于此类任务。但是对于要定位的父元素,您必须至少有一些标识符,因此,例如,这将起作用:

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

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

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

于 2013-05-06T10:29:41.197 回答
1

尝试

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

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

于 2013-05-06T10:29:34.827 回答
0

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

if($('.the-child').parents('#parent-b').length>0){}
于 2013-05-06T10:28:30.520 回答