เรามักจะใช้ nodeType==1 เพื่อพิจารณาว่าองค์ประกอบนั้นเป็นองค์ประกอบ HMTLElement หรือไม่ องค์ประกอบบนเพจคือโหนดทั้งหมด รวมถึง Element Node, Attribute Node, Text Node เป็นต้น w3c nodeType ถูกกำหนดดังนี้
const แบบสั้นที่ไม่ได้ลงนาม ELEMENT_NODE = 1;
const สั้นที่ไม่ได้ลงนาม ATTRIBUTE_NODE = 2;
const สั้นที่ไม่ได้ลงนาม TEXT_NODE = 3;
const CDATA_SECTION_NODE แบบสั้นที่ไม่ได้ลงนาม = 4;
const สั้นที่ไม่ได้ลงนาม ENTITY_REFERENCE_NODE = 5;
const สั้นที่ไม่ได้ลงนาม ENTITY_NODE = 6;
const สั้นที่ไม่ได้ลงนาม PROCESSING_INSTRUCTION_NODE = 7;
const สั้นที่ไม่ได้ลงนาม COMMENT_NODE = 8;
const สั้นที่ไม่ได้ลงนาม DOCUMENT_NODE = 9;
const สั้นที่ไม่ได้ลงนาม DOCUMENT_TYPE_NODE = 10;
const สั้นที่ไม่ได้ลงนาม DOCUMENT_FRAGMENT_NODE = 11;
const สั้นที่ไม่ได้ลงนาม NOTATION_NODE = 12;
แต่จะเกิดอะไรขึ้นถ้าวัตถุแบบกำหนดเองของเรามีแอตทริบิวต์ nodeType ด้วย? ชอบ
คัดลอกรหัสรหัสดังต่อไปนี้:
var obj = {ประเภทโหนด:1};
ฟังก์ชั่น isHTMLLElement (obj) {
ถ้า (obj.nodeType){
กลับ obj.nodeType==1;
-
-
คือHTMLElement(obj);//true
isHTMLElement(obj) ข้างต้นคืนค่าเป็นจริง แต่ obj ไม่ใช่องค์ประกอบโหนด HTML อย่างเห็นได้ชัด ข้อมูลต่อไปนี้จะตัดสินโดยลักษณะของวัตถุและคำสั่ง try-catch
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น isHTMLLElement (obj) {
var d = document.createElement("div");
พยายาม{
d.appendChild(obj.cloneNode(จริง));
กลับ obj.nodeType==1?true:false;
} จับ (จ) {
กลับเท็จ;
-
-
วาร์ obj1 = {ประเภทโหนด:1};
var obj2 = document.createTextNode("สวัสดี");
var obj2 = document.createElement("p");
isHTMLElement(obj1);//false
isHTMLElement(obj2);//false
isHTMLElement(obj3);//จริง
ต้องได้รับการดูแลเป็นพิเศษสำหรับหน้าต่างและเอกสาร
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น isHtmlControl (obj) {
var d = document.createElement("div");
พยายาม{
d.appendChild(obj.cloneNode(จริง));
กลับ obj.nodeType==1 ? จริง : false;
} จับ (จ) {
กลับ obj==หน้าต่าง ||. obj==เอกสาร;
-
-