DOM1級定義了一個Node接口,該接口將由DOM中的所有節(jié)點(diǎn)類型實(shí)現(xiàn)。這個Node接口在JavaScript中是作為Node類型實(shí)現(xiàn)的;除了IE之外,在其他所有瀏覽器中都可以訪問到這個類型。JavaScript中的所有節(jié)點(diǎn)類型都繼承自Node類型,因此所有節(jié)點(diǎn)類型都共享著相同的基本屬性和方法。
每個節(jié)點(diǎn)都有一個nodeType屬性,用于表明節(jié)點(diǎn)的類型。節(jié)點(diǎn)類型由在Node類型中定義的下列12個數(shù)值常量來表示,任何節(jié)點(diǎn)類型必居其一:
◎Node.ELEMENT_NODE(1);
◎Node.ATTRIBUTE_NODE(2);
◎Node.TEXT_NODE(3);
◎Node.CDATA_SECTION_NODE(4);
◎Node.ENTITY_REFERENCE _NODE(5);
◎Node.ENT工IrY_NODE(6);
◎Node.PROCESSING_INSTRUCTION_NODE(7);
◎Node.COMMENT_NODE(8);
◎Node.DOCUMENT_NODE(9);
◎Node.DOCUMENT_TYPE_NODE(IO);
◎Node.DOCUMENT_FRAGMENT_NODE(11);
◎Node.NOTATION_NODE(12);
通過比較上面這些常量,可以很容易地確定節(jié)點(diǎn)的類型,例如:
if( someNode.nodeType==Node.ELEMENT_NODE){//在IE中無效
alert("Node is an element.");
}
這個例子比較了someNode.nodeType與Node.ELEMENT NODE常量。如果二者相等,則意味著someNode確實(shí)是一個元素。然而,由于IE沒有公開Node類型的構(gòu)造函數(shù),因此上面的代碼在IE中會導(dǎo)致錯誤。為了確??鐬g覽器兼容,最好還是將nodeType屬性與數(shù)字值進(jìn)行比較,如下所示:
if( someNode.nodeType==1 ){//適用所有瀏覽器
alert( "Node is an element.");
}
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò) http://www.gimmickmag.com 如轉(zhuǎn)載請注明出處!