如何判断出一个js对象是否一个dom对象


Posted in Javascript onNovember 24, 2016

我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法。

要判断一个对象是否DOM对象,首先想到的无非就是它是否具有DOM对象的各种属性或特征,比如是否有nodeType属性,有tagName属性,等等。判断的特征越多,也就越可靠,因为毕竟我们自定义的js对象也可以有那些属性。还有其他方法吗?

在DOM Level2标准中定义了一个HTMLElement对象,它规定所有的DOM对象都是HTMLElement的实例,所以我们可以利用这点来判断一个对象是不是DOM对象:如果该对象是HTMLElement的实例,则它肯定是一个DOM对象。在不支持HTMLElement的浏览器中我们则还是使用特征检测法。

<script type="text/javascript">
  //首先要对HTMLElement进行类型检查,因为即使在支持HTMLElement
  //的浏览器中,类型却是有差别的,在Chrome,Opera中HTMLElement的
  //类型为function,此时就不能用它来判断了
  var isDOM = ( typeof HTMLElement === 'object' ) ?
        function(obj){
          return obj instanceof HTMLElement;
        } :
        function(obj){
          return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';
        }
  </script>

以上就是小编为大家带来的如何判断出一个js对象是否一个dom对象全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
JS循环遍历JSON数据的方法
Jul 08 Javascript
js使用for循环及if语句判断多个一样的name
Sep 09 Javascript
JavaScript实现16进制颜色值转RGB的方法
Feb 09 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
Ext JS 实现建议词模糊动态搜索功能
May 13 Javascript
JavaScript实现动态添加Form表单元素的方法示例
Aug 14 Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
Vue header组件开发详解
Jan 26 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
Apr 09 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 #Javascript
纯javascript版日历控件
Nov 24 #Javascript
js通过classname来获取元素的方法
Nov 24 #Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 #Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 #Javascript
概述javascript在Google IE中的调试技巧
Nov 24 #Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 #Javascript
You might like
使用apache模块rewrite_module (转)
2007/02/14 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python实现代码统计工具
2019/09/19 Python
Python 在函数上添加包装器
2020/07/28 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
软件测试题目
2013/02/27 面试题
《火烧云》教学反思
2014/04/12 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
个人工作能力自我评价
2015/03/05 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2016年清明节寄语
2015/12/04 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python