如何判断出一个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 相关文章推荐
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
Jul 26 Javascript
XENON基于JSON变种
Jul 27 Javascript
Array的push与unshift方法性能比较分析
Mar 05 Javascript
js实现带有介绍的Select列表菜单实例
Aug 18 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
基于JS实现checkbox全选功能实例代码
Oct 31 Javascript
小程序自定义日历效果
Dec 29 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 Javascript
vue-model实现简易计算器
Aug 17 Javascript
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
原生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
laravel中的一些简单实用功能
2018/11/03 PHP
jQuery 1.0.2
2006/10/11 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
Python中有趣在__call__函数
2015/06/21 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
python实现单向链表详解
2018/02/08 Python
Django 实现下载文件功能的示例
2018/03/06 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
现货白银电话营销话术
2015/05/29 职场文书
休假证明书
2015/06/24 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
Python 多线程处理任务实例
2021/11/07 Python
SQL Server中的游标介绍
2022/05/20 SQL Server
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android