如何判断出一个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客户端解决方案 缓存提供程序
Jul 14 Javascript
基于javascript 闭包基础分享
Jul 10 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
JavaScript给url网址进行encode编码的方法
Mar 18 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
Aug 03 Javascript
javascript实现图片轮换动作方法
Aug 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
php4的session功能评述(一)
2006/10/09 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
PHP概率计算函数汇总
2015/09/13 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
require.js中的define函数详解
2017/07/10 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
医护人员英文求职信范文
2013/11/26 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
高三语文教学反思
2014/01/15 职场文书
给孩子的新年寄语
2014/04/08 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
临时用工协议书范本
2014/10/29 职场文书
导游词之无锡古运河
2019/11/14 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
详解nginx location指令
2022/01/18 Servers