Javascript 检查元素是否为给定元素的父元素

Javascript 检查元素是否为给定元素的父元素,javascript,jquery,parent,Javascript,Jquery,Parent,如果单击的元素不是某个特定DIV元素的子元素,如何检查 $("body").click(function(e) { if(e NOT child of $('#someDiv')) alert(1); }); 或者,你的意思是(“不是e的祖先”): 或者,你的意思是(“不是e的祖先”): 如果父元素与选择器匹配,则可以使用带有选择器的parent方法返回父元素。然后可以检查length属性以查看是否返回了父元素: $("body").click(function(e) { if

如果单击的元素不是某个特定DIV元素的子元素,如何检查

$("body").click(function(e) {
    if(e NOT child of $('#someDiv')) alert(1);
});
或者,你的意思是(“不是e的祖先”):

或者,你的意思是(“不是e的祖先”):


如果父元素与选择器匹配,则可以使用带有选择器的
parent
方法返回父元素。然后可以检查
length
属性以查看是否返回了父元素:

$("body").click(function(e) {
    if(!$(this).parent("#someDiv").length) {
        alert("Not a child");
    }
});

如果要检查单击的元素是否不是祖先元素,可以使用
父元素
而不是
父元素
,如果父元素与选择器匹配,可以使用带有选择器的
父元素
方法返回父元素。然后可以检查
length
属性以查看是否返回了父元素:

$("body").click(function(e) {
    if(!$(this).parent("#someDiv").length) {
        alert("Not a child");
    }
});
$('yourElement').on('click',function(){
      if(!$(this).parents('theDiv').length){
          //not a child
      }
});

如果要检查单击的元素是否不是祖先,可以使用
parents
而不是
parent

.closest()
从元素本身开始,如果它发现了什么,则停止。如果选择器与子对象匹配(比如使用类),它将返回自身
.parents()
会更安全。@Joseph被很好地发现了。然后使用
.parent().closest('#someDiv')
@RobW错过了那个。我认为OP的意思是使用
.on
.delegate
.closest()
从元素本身开始,如果它找到了什么,它就会停止。如果选择器与子对象匹配(比如使用类),它将返回自身
.parents()
会更安全。@Joseph被很好地发现了。然后使用
.parent().closest('#someDiv')
@RobW错过了那个。我以为OP的意思是使用
.on
.delegate
。你是指孩子还是后代?你是指孩子还是后代?
$('yourElement').on('click',function(){
      if(!$(this).parents('theDiv').length){
          //not a child
      }
});