如何判断出一个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 相关文章推荐
javascript String 对象
Apr 25 Javascript
JavaScript this调用规则说明
Mar 08 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
javascript实现动态侧边栏代码
Feb 19 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
使用vue.js制作分页组件
Jun 27 Javascript
mpvue小程序仿qq左滑置顶删除组件
Aug 03 Javascript
微信小程序实现折线图的示例代码
Jun 07 Javascript
详解package.json版本号规则
Aug 01 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
Apr 10 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
PHP一些有意思的小区别
2006/12/06 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
php编写简单的文章发布程序
2015/06/18 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
JS编程小常识很有用
2012/11/26 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
详解Python中的Lock和Rlock
2021/01/26 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
开业庆典邀请函
2014/01/08 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书
个人总结与自我评价
2014/09/18 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
同学聚会通知短信
2015/04/20 职场文书
兴趣班停课通知
2015/04/24 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
JavaScript获取URL参数的方法分享
2022/04/07 Javascript