判断某个对象是不是DOM对象

在写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>
时间: 2024-11-07 22:13:41

判断某个对象是不是DOM对象的相关文章

jQuery对象和DOM对象的互相转换

jQuery提供两种方法讲一个jQuery对象转换成DOM对象,即[index]和get(index). (1)jQuery对象是一个类似数组的对象,可以通过[index]的方法得到相应的DOM对象. var $cr = $("#cr");//jQuery对象 var cr = $cr[0];//DOM对象 alert(cr.checked)//DOM检测这个checkbox是否被选中 (2)另一个方法是jQuery本身提供的,通过get(index)方法得到相应的DOM对象. var

jQuery对象与DOM对象转换

原文链接 http://www.cnblogs.com/ouyangping/p/6439939.html jQuery对象与DOM对象是不一样的 通过一个简单的例子,简单区分下jQuery对象与DOM对象: <p id="imooc"></p> 我们要获取页面上这个id为imooc的div元素,然后给这个文本节点增加一段文字:"hello,world",并且让文字颜色变成红色. 通过标准JavaScript处理: var p = docum

Jquery对象和DOM对象的区别

1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM,因此需要重点了解jQuery对象和DOM对象以及它们之间的关系.DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象;复制代码 代码如下: var domObj = document.getElementById("id"); //DOM对象var $obj = $("#id"); //j

什么是jquery $ jQuery对象和DOM对象 和一些选择器

1什么是jQuery: jQuery就是将一些方法封装在一个js文件中.就是个js库 我们学习这些方法. 2为什么要学习jQuery: 原生js有以下问题: 1.兼容性问题2.代码重复3.DOM提供的方法名太长,难记4.代码容错性较差5.入口函数只能有一个,如果出现多个,后面的会把前面的覆盖掉 3 jQuery版本介绍: 大版本 : 1 2 3 1 兼容ie6.7.8 2 3 不兼容 小版本: 压缩版(生产环境中用) 没有注释 没有换行 没有空格 变量名 都是 a b c d 这种模式 体积特别

js-jQuery对象与dom对象相互转换

http://blog.csdn.net/jueshengtianya/article/details/8823091 核心提示:jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,一般情况下,如S(’#id’)得到的是jquery对象,它不能使用js中的dom方法.所以,如果jquery对象要使用标准的dom方法,就需要进行对象转换. 刚开始学习jQuery,可能一时会分不清楚哪些是j

jQuery对象与dom对象的转换

jQuery对象与dom对象的转换只有jquery对象才能使用jquery定义的方法.注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是 jquery对象.普通的dom对象一般可以通过$()转换成jquery对象.如:$(document.getElementByIdx_x("msg"))则为jquery对象,可以使用jquery的方法.由于jquery对象本身是一个集合.所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取

jQuery对象与DOM对象之间的转换

什么是DOM对象 使用JavaScript中的方法获取页面中的元素返回的对象就是dom对象.比如使用document.getElement*系列的方法返回的就是dom对象. var btn = document.getElementById("btnShowDiv"); var divs = document.getElementsByTagName("div"); dom对象只可以使用dom对象的方法和属性 domObject.innerHTML = "

二,jquery对象 与 dom对象关系

dom对象就是jquery对象的数组组成部分 1,jquery对象----->dom对象: $()[下标],可以调用dome方法 2 dom对象----->jquery对象:$(dom对象),可以调用jquery方法

关于jquery对象和DOM对象的区别

这个问题的出现是因为自己对jquery不够了解,只会获取简单的Demo,做简单的操作,将jquery的很多方法和js中的混淆,以为js中的很多方法,在jquery中也可以使用,这是完全错误的理解! 所以有空jquery也要好好学习!(列为工作时间之外的任务) 下面摘自某些作者的论述,感觉总结的很到位,分享如下,并作为一个记录! jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象