判斷元素是否為HTMLElement元素

2021-08-30 09:58:24 字數 1372 閱讀 9448

我們經常使用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 = ;

function ishtmlelement(obj)

}ishtmlelement(obj);//true

以上ishtmlelement(obj)返回true,但obj明顯不是乙個html節點元素。下面通過物件特性及try-catch語句來判斷。

function ishtmlelement(obj)catch(e)

}var obj1 = ;

var obj2 = document.createtextnode("hello");

var obj2 = document.createelement("p");

ishtmlelement(obj1);//false

ishtmlelement(obj2);//false

ishtmlelement(obj3);//true

增加個函式判斷window和document的情況,函式名ishtmlcontrol

function ishtmlcontrol(obj) catch(e)

}

JS判斷元素是否為陣列的方式

let a 1,2,3,4,5,6 let b let c 123 let d www let e array.isarray 能判斷乙個元素是否為陣列,如果是就返回true,否則就返回false console.log array.isarray a true console.log array....

判斷是否為陣列

在說明如何判斷乙個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別 number string object boolean null undefined。除了前四個型別外,null 物件 陣列返回的都是object型別 對於函式型別返回的則是function,再比如typeof...

判斷是否為質數

程式接受兩個正整數的輸入,構成乙個閉區間,找出這個區間內的所有質數。判斷乙個數n是否為質數時,先對這個數開平方,隨後從2開始,迴圈到這個平行根,檢查其中的數能否整除數n,若能整除,則為合數,否則為質數。由於sqrt函式的返回值是double型別,為保證準確性 如sqrt 4 返回值可能是1.9999...