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

javascript判断一个元素是另外一个元素的子元素相关推荐

  1. js将数组中一个或多个字段相同的子元素中合并

    最近js中遇到js将数组中一个或多个字段相同的子元素中合并,相信很多朋友也有遇到,大家可能有多种方法,我在这里记录一个相对简单的方法,当然大家如有其它更好的方法,请提出来大家共同学习. //将经济事项 ...

  2. 父元素设置overflow: overlay; 或 overflow: scroll; 或 overflow: auto; 如果子元素超出父元素内容,父元素会被子元素超出部分撑大至子元素同样大小

    发现 父元素设置overflow: overlay; 或 overflow: scroll; 或 overflow: auto; 如果子元素超出父元素内容,父元素会被子元素超出部分撑大至子元素同样大小 ...

  3. 关于父元素设置maxHeight或minHeight,子元素高度设置%的不生效的问题

    关于父元素设置maxHeight或minHeight,子元素高度设置%的不生效的问题 要理解这个问题,首先要搞清楚一个元素的高度是由什么决定的?如果在不额外设置高度或者行高等外加的影响高度的css样式 ...

  4. 解决IE6,IE7下子元素使用position:relative、父元素使用overflow:auto后,子元素不随着滚动条滚动的问题...

    解决IE6,IE7下子元素使用position:relative.父元素使用overflow:auto后,子元素不随着滚动条滚动的问题 在IE6,IE7下,子元素使用position:relative ...

  5. 动态切换父元素隐藏和显示里面的子元素的动画会再一次执行吗?

    代码: 完整代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  6. CSS子元素居中(父元素宽高已知,子元素未知)

    <style> .container{width:400px; height:400px; position:relative;} .center{position:absolute; l ...

  7. 关于flex布局中,父元素高度auto,由一子元素撑开,另一子元素自适应高度问题

    .expressRecord-single-close {//父元素样式 width: 100%; height: auto; display: flex; justify-content: flex ...

  8. JavaScript判断字符串中包含另一个字符串(QML 中使用)

    前言 为啥会搞JavaScript呢,原因很简单,因为 QML 中用到了 JS 的语法,本来在 Qt 里面 QString 检查字符串是否包含一个子串是非常简单的事情,直接用contains()函数就 ...

  9. 第一个Polymer应用 - (2)创建你自己的元素

    原文链接: Step 2: Your own element 翻译日期: 2014年7月6日 翻译人员: 铁锚 通过上一节的学习和实践, 您已经完毕了一个主要的应用程序结构(application s ...

  10. 怎么判断子元素距离父元素顶部位置_css子元素如何相对父元素定位?

    在css中,可以使用position属性,通过给父元素设置相对定位"position:relative;"样式,给子元素设置绝对定位"position:absolute; ...

最新文章

  1. 五角大楼公布UFO报告,不明飞行物到底是什么?(全文)
  2. Linux-编写Shell的几个技巧_02
  3. Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写
  4. Visual Studio 批量注释 快捷键
  5. 存储过程或视图的字符串查询
  6. Codeforces Round #112 (Div. 2) E. Compatible Numbers sosdp
  7. (原创)C++11改进我们的程序之move和完美转发
  8. js构造函数内存在的闭包
  9. chat.php能定期刷新,php+ajax实现在线刷新,即时通讯,无需mysql数据库!
  10. Operating System-进程间互斥的方案-保证同一时间只有一个进程进入临界区(3)- TSL指令...
  11. unity快速将旋转向量转换为四元数
  12. 1分钟了解微信收款商业版
  13. linux 内核学习
  14. OpenCV第十四讲: Fast特征点与ORB特征点原理详解
  15. 一个WEB应用的开发流程 供学习用!
  16. html不能打开图片,HTML无法打开图片
  17. linux中opt是啥文件夹,linux根目录的各文件夹里装了什么
  18. 2021-02-17:规定1和A对应、2和B对应、3和C对应...26和Z对应,那么一个数字字符串比如“111”就可以转化为:“AAA“、“KA“和“AK“。给定一个只有数字字符组成的字符串str,请
  19. Mac系统上查看端口占用和释放端口
  20. 电竞Dota2数据API接口 - 【联赛列表】API调用示例代码

热门文章

  1. python 运行pyc_Pyc文件编译和运行
  2. PHP判断升级,版本检测升级(更新)库
  3. C语言标准库 <float.h>
  4. linux ps画图,PhotoGIMP:让Linux下的GIMP交互体验就像Photoshop
  5. android gdb 远程调试工具,gdb输入/输出错误远程调试到Android
  6. TensorFlow AlexNet
  7. opencv-api boundingRect
  8. matplotlib Artist 教程
  9. CentOS7的安装和配置
  10. texstudio如何安装cjk宏包_MikTex+TexStudio配置论文写作环境