确定div是否是父母

时间:2012-05-18 21:54:36

标签: jquery

假设我有这个HTML结构:

<div id="Ancestor">
 <div>
   <div>
     ....
       <div class="DeepChild"></div>
...
<div id="NotAncestor">
 <div>
   <div>
     ....
       <div class="DeepChild"></div>

我想知道,当我点击DeepChild div时,如果它是Ancestor的后代。

这样的事情:

$('.DeepChild').click(function () {
   if (whichcondition?? === true) { IsFromAncestor = true; }
});

3 个答案:

答案 0 :(得分:6)

$(this).parents("#Ancestor").length > 0

如果您的父母类是静态的并且不会随着时间的推移而移动,您可能只想将监听器附加到嵌套在其中的div和祖先:

$("#Ancestor .deepchild").click(...

答案 1 :(得分:3)

这是一个老问题,并且已经接受了答案,但我认为还没有给出最好的选择:

$(this).parents(“#Ancestor”)。length&gt; 0 对于复杂的DOM结构,可能非常慢

if ($('#Ancestor').find(this).length)
    //I'm under the  #Ancestor.

jsperf显示我的方式快三倍

答案 2 :(得分:0)

这样的事情

$(this).parents("#Ancestor").length > 0