如何判断出一个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 相关文章推荐
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
Jul 21 Javascript
Array的push与unshift方法性能比较分析
Mar 05 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
jquery实现文字由下到上循环滚动的实例代码
Aug 09 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
jQuery Ajax使用FormData对象上传文件的方法
Sep 07 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
Jan 03 Javascript
微信小程序中时间戳和日期的相互转换问题
Jul 09 Javascript
vue中使用props传值的方法
May 08 Javascript
浅析vue-router中params和query的区别
Dec 24 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
一个目录遍历函数
2006/10/09 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
如何实现动态删除javascript函数
2007/05/27 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
十岁生日同学答谢词
2014/01/19 职场文书
社区七一党员活动方案
2014/01/25 职场文书
代理班主任的自我评价
2014/02/04 职场文书
手机促销活动方案
2014/02/05 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
土建施工员岗位职责
2015/04/11 职场文书
英文投诉信格式
2015/07/03 职场文书
Golang日志包的使用
2022/04/20 Golang