javascript判断一个元素是另外一个元素的子元素

javascript判断一个元素是另外一个元素的子元素用途有很多,最常用的就是当点击页面的空白处去执行某些操作,比如弹出层等。

function isParent (obj,parentObj){
while (obj != undefined && obj != null && obj.tagName.toUpperCase() != ‘BODY’){
if (obj == parentObj){
return true;
}
obj = obj.parentNode;
}
return false;
}

$(document).click(function(event){
alert(isParent(event.target, $(“.floatLayer”)[0]));
});

感觉还挺好用,但是在jQuery应用中还是有很多缺陷,比如多个元素的时候写起来就不是很方便。所以写了比较简单的jQuery判断一个元素是否为另一个元素的子元素(或者其本身)的两个扩展:

jquery代码
//判断:当前元素是否是被筛选元素的子元素

jQuery.fn.isChildOf = function(b){
return (this.parents(b).length > 0);
};

//判断:当前元素是否是被筛选元素的子元素或者本身

jQuery.fn.isChildAndSelfOf = function(b){
return (this.closest(b).length > 0);
};

使用起来也非常方便:

$(document).click(function(event){
alert($(event.target).isChildOf(“.floatLayer”));
});
或者
$(document).click(function(event){
alert($(event.target).isChildAndSelfOf (“.floatLayer”));
});
原文地址:https://www.cnblogs.com/hutuzhu/p/4180042.html