1

如果单击的元素不是某些特定 DIV 元素的子元素,我该如何检查?

$("body").click(function(e) {
    if(e NOT child of $('#someDiv')) alert(1);
});
4

3 回答 3

6
if ($(e.target).parent('#someDiv').length == 0) {
    ...
}

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

if ($(e.target).closest('#someDiv').length == 0) {
于 2012-04-16T12:55:28.600 回答
1

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

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

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

于 2012-04-16T12:55:38.527 回答
1
$('yourElement').on('click',function(){
      if(!$(this).parents('theDiv').length){
          //not a child
      }
});
于 2012-04-16T12:56:14.453 回答