如何判斷出一個js對象是否一個dom對象
我們在寫js代碼時有時需要判斷某個對象是不是DOM對象,然后再進(jìn)行后續(xù)的操作,這里我給出一種兼容各大瀏覽器,同時又算是比較穩(wěn)妥的一種方法。
要判斷一個對象是否DOM對象,首先想到的無非就是它是否具有DOM對象的各種屬性或特征,比如是否有nodeType屬性,有tagName屬性,等等。判斷的特征越多,也就越可靠,因為畢竟我們自定義的js對象也可以有那些屬性。還有其他方法嗎?
在DOM Level2標(biāo)準(zhǔn)中定義了一個HTMLElement對象,它規(guī)定所有的DOM對象都是HTMLElement的實例,所以我們可以利用這點(diǎn)來判斷一個對象是不是DOM對象:如果該對象是HTMLElement的實例,則它肯定是一個DOM對象。在不支持HTMLElement的瀏覽器中我們則還是使用特征檢測法。
<script type="text/javascript">
//首先要對HTMLElement進(jìn)行類型檢查,因為即使在支持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>
以上就是小編為大家?guī)淼娜绾闻袛喑鲆粋€js對象是否一個dom對象全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
頁面向下滾動ajax獲取數(shù)據(jù)的實現(xiàn)方法(兼容手機(jī))
下面小編就為大家?guī)硪黄撁嫦蛳聺L動ajax獲取數(shù)據(jù)的實現(xiàn)方法(兼容手機(jī))。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05
如何在JavaScript中使用map()迭代數(shù)組詳細(xì)步驟
在JavaScript中循環(huán)迭代數(shù)組的方法有很多種,下面這篇文章主要給大家介紹了關(guān)于如何在JavaScript中使用map()迭代數(shù)組的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
JS中三目運(yùn)算符和if else的區(qū)別分析與示例
本文是通過示例詳細(xì)分析了JS中三目運(yùn)算符和if else的區(qū)別,是篇非常不錯的文章,這里推薦給大家。2014-11-11
js 通過html()及text()方法獲取并設(shè)置p標(biāo)簽的顯示值
這篇文章主要介紹了js 通過html()及text()方法獲取并設(shè)置p標(biāo)簽的顯示值,需要的朋友可以參考下2014-05-05

