最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2013年12月06日 09:02:39   作者:  
這篇文章主要介紹了如何判斷元素是否為HTMLElement元素。需要的朋友可以過來參考下,希望對大家有所幫助

我們經(jīng)常使用nodeType==1判斷元素是否是一個HMTLElement元素。頁面上的元素都是節(jié)點(Node),有元素節(jié)點(Element Node)、屬性節(jié)點(Attribute Node)、文本節(jié)點(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屬性呢?如

復(fù)制代碼 代碼如下:

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

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

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還要特別處理下
復(fù)制代碼 代碼如下:

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;
    }

相關(guān)文章

最新評論

浙江省| 江油市| 锦州市| 丰城市| 碌曲县| 堆龙德庆县| 三原县| 乐平市| 宜黄县| 昂仁县| 叶城县| 焉耆| 涞水县| 县级市| 榆社县| 肃宁县| 苏尼特左旗| 博白县| 蒙阴县| 珲春市| 宜良县| 静海县| 疏附县| 漳州市| 疏附县| 乐安县| 陇川县| 开江县| 镇赉县| 岳阳市| 托克逊县| 花莲市| 深州市| 绥宁县| 长武县| 当涂县| 平凉市| 昭苏县| 哈巴河县| 正蓝旗| 邹平县|