如何判断出一个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实现的检测浏览器和系统的函数
Apr 09 Javascript
js 对象是否存在判断
Jul 15 Javascript
js获得地址栏?问号后参数的方法
Aug 08 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 Javascript
原生js制作日历控件实例分享
Apr 06 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
vue实现评价星星功能
Jun 30 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 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
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
JS获取select-option-text_value的方法
2013/12/26 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
python安装以及IDE的配置教程
2015/04/29 Python
使用Python对Access读写操作
2017/03/30 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
python 实现任务管理清单案例
2020/04/25 Python
django rest framework serializers序列化实例
2020/05/13 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
求职简历自荐信
2014/06/18 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
MongoDB使用场景总结
2022/02/24 MongoDB
python双向链表实例详解
2022/05/25 Python