如何判斷出一個(gè)js對(duì)象是否一個(gè)dom對(duì)象
我們?cè)趯慾s代碼時(shí)有時(shí)需要判斷某個(gè)對(duì)象是不是DOM對(duì)象,然后再進(jìn)行后續(xù)的操作,這里我給出一種兼容各大瀏覽器,同時(shí)又算是比較穩(wěn)妥的一種方法。
要判斷一個(gè)對(duì)象是否DOM對(duì)象,首先想到的無(wú)非就是它是否具有DOM對(duì)象的各種屬性或特征,比如是否有nodeType屬性,有tagName屬性,等等。判斷的特征越多,也就越可靠,因?yàn)楫吘刮覀冏远x的js對(duì)象也可以有那些屬性。還有其他方法嗎?
在DOM Level2標(biāo)準(zhǔn)中定義了一個(gè)HTMLElement對(duì)象,它規(guī)定所有的DOM對(duì)象都是HTMLElement的實(shí)例,所以我們可以利用這點(diǎn)來(lái)判斷一個(gè)對(duì)象是不是DOM對(duì)象:如果該對(duì)象是HTMLElement的實(shí)例,則它肯定是一個(gè)DOM對(duì)象。在不支持HTMLElement的瀏覽器中我們則還是使用特征檢測(cè)法。
<script type="text/javascript"> //首先要對(duì)HTMLElement進(jìn)行類型檢查,因?yàn)榧词乖谥С諬TMLElement //的瀏覽器中,類型卻是有差別的,在Chrome,Opera中HTMLElement的 //類型為function,此時(shí)就不能用它來(lái)判斷了 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>
以上就是小編為大家?guī)?lái)的如何判斷出一個(gè)js對(duì)象是否一個(gè)dom對(duì)象全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
JavaScript時(shí)間操作之年月日星期級(jí)聯(lián)操作
這篇文章主要介紹了JavaScript時(shí)間操作之級(jí)聯(lián)日期選擇操作,涉及到年、月、日、星期,感興趣的小伙伴們可以參考一下2016-01-01Layui數(shù)據(jù)表格之獲取表格中所有的數(shù)據(jù)方法
今天小編就為大家分享一篇Layui數(shù)據(jù)表格之獲取表格中所有的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08js相冊(cè)效果代碼(點(diǎn)擊創(chuàng)建即可)
利用js 書(shū)寫的相冊(cè)代碼,點(diǎn)擊創(chuàng)建即可看到效果,感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)jquery有所幫助2013-04-04js實(shí)現(xiàn)在頁(yè)面上彈出蒙板技巧簡(jiǎn)單實(shí)用
蒙板是兩個(gè)div,其中popWindow樣式的div用于遮住整個(gè)頁(yè)面并半透明,感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)js蒙版有所幫助2013-04-04