首页 > 代码库 > javascript判断一个元素是另外一个元素的子元素

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”));});

 

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