国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

如何判斷元素是否為HTMLElement元素

2024-05-06 15:57:01
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了如何判斷元素是否為HTMLElement元素。需要的朋友可以過來參考下,希望對大家有所幫助

我們經常使用nodeType==1判斷元素是否是一個HMTLElement元素。頁面上的元素都是節點(Node),有元素節點(Element Node)、屬性節點(Attribute Node)、文本節點(Text Node)等。w3c nodeType 的定義如下

const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
const unsigned short ENTITY_NODE = 6;
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
const unsigned short COMMENT_NODE = 8;
const unsigned short DOCUMENT_NODE = 9;
const unsigned short DOCUMENT_TYPE_NODE = 10;
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
const unsigned short NOTATION_NODE = 12;


但如果我們自定義的對象也包含nodeType屬性呢?如

復制代碼 代碼如下:


var obj = {nodeType:1};
function isHTMLElement(obj){
    if(obj.nodeType){
        return obj.nodeType==1;
    }
}
isHTMLElement(obj);//true


以上isHTMLElement(obj)返回true,但obj明顯不是一個HTML節點元素。下面通過對象特性及try-catch語句來判斷。

復制代碼 代碼如下:


function isHTMLElement(obj){
    var d = document.createElement("div");
    try{
        d.appendChild(obj.cloneNode(true));
        return obj.nodeType==1?true:false;
    }catch(e){
        return false;
    }
}
var obj1 = {nodeType:1};
var obj2 = document.createTextNode("hello");
var obj2 = document.createElement("p");
isHTMLElement(obj1);//false
isHTMLElement(obj2);//false
isHTMLElement(obj3);//true


對于window和document還要特別處理下

復制代碼 代碼如下:


function isHtmlControl(obj) { 

    var d = document.createElement("div");
    try{
        d.appendChild(obj.cloneNode(true));
        return obj.nodeType==1 ? true : false;
    }catch(e){
        return obj==window || obj==document;
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 乐至县| 河北区| SHOW| 阜康市| 金秀| 鸡泽县| 浪卡子县| 枝江市| 呼玛县| 横山县| 蛟河市| 方正县| 双峰县| 潮州市| 龙井市| 洛隆县| 凤山县| 德昌县| 建平县| 淮北市| 长阳| 湛江市| 高碑店市| 灵丘县| 友谊县| 台山市| 乐昌市| 惠东县| 同德县| 巨鹿县| 崇仁县| 江永县| 龙南县| 旺苍县| 丹巴县| 兰溪市| 澄迈县| 湛江市| 琼中| 石台县| 平顶山市|