在JavaScript中,屬性節(jié)點指的是屬性對象,代表著HTML元素的一個屬性;屬性節(jié)點的常量表示為“ATTRIBUTE_NODE”,代表的常量值為“2”,可以利用該常量來判斷節(jié)點類型。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
DOM(Document Object Model)即文檔對象模型。使用 DOM 技術(shù)可以實現(xiàn)網(wǎng)頁的動態(tài)變化,如可以動態(tài)地顯示或隱藏一個元素,改變它們的屬性,增加一個元素等。DOM 技術(shù)極大地增強了用戶與網(wǎng)頁的交互性。
DOM 節(jié)點類型
DOM 樹中的節(jié)點可根據(jù)不同的方式分類。根據(jù)節(jié)點的層次來分,主要可分為:祖先節(jié)點(當前節(jié)點上面的所有節(jié)點的統(tǒng)稱)、父子節(jié)點(表示上下兩層節(jié)點之間的關(guān)系)、子孫節(jié)點(當前節(jié)點下面的所有節(jié)點的統(tǒng)稱)和兄弟節(jié)點(具有相同父節(jié)點的所有節(jié)點統(tǒng)稱)等幾種。
根據(jù)節(jié)點類型來分,主要可分為:document 節(jié)點、元素節(jié)點、屬性節(jié)點、文本節(jié)點、注釋節(jié)點這幾種。不同類型的節(jié)點具有一個對應的常量,代表特定的值,可使用這個常量來判斷節(jié)點類型,常用 HTML DOM 節(jié)點的常量表示及代表的值見下表。
節(jié)點類型 | 節(jié)點類型常量 | 常量值 |
---|---|---|
document 節(jié)點 | DOCUMENT_NODE | 9 |
元素節(jié)點 | ELEMENT_NODE | 1 |
屬性節(jié)點 | ATTRIBUTE_NODE | 2 |
文本節(jié)點 | TEXT_NODE | 3 |
注釋節(jié)點 | COMMENT_NODE | 8 |
JS屬性節(jié)點
在 HTML DOM 中,一個屬性節(jié)點就是一個屬性對象,代表 HTML 元素的一個屬性。一個元素可以擁有多個屬性。元素的所有屬性存放在表示無序的集合 NamedNodeMap 中。NamedNodeMap 中的節(jié)點可通過名稱或索引來訪問。
使用 DOM 處理 HTML 文檔元素,有時需要處理元素的屬性,此時需要使用到屬性節(jié)點的屬性和相關(guān)方法。屬性節(jié)點的常用屬性和相關(guān)方法見下表。
屬性/方法 | 描述 |
---|---|
nodeName | name | 通過屬性對象來引用,返回元素屬性的名稱 |
nodeValue | value | 通過屬性對象來引用,設(shè)置或返回元素屬性的值 |
Item(節(jié)點下標) | 返回屬性節(jié)點集中指定下標的節(jié)點 |
lengh | 返回屬性節(jié)點集的節(jié)點數(shù) |
nodeType | 返回屬性節(jié)點的類型值 |
注:屬性 name 和 nodeName 的作用等效,value 和 nodeValue 的作用等效。
示例:操作屬性節(jié)點。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>操作屬性節(jié)點</title> </head> <body> <a href="ex7-1.html" title="document節(jié)點的應用" id="a1">document節(jié)點</a> <script> var oA = document.getElementById('a1'); var aAttr = oA.attributes;//獲取a元素的所有屬性節(jié)點 console.log('a元素具有以下屬性節(jié)點:'); for(var i = 0; i < aAttr.length; i++){//遍歷a元素的所有屬性節(jié)點 console.log(aAttr[i]); } console.log('aAttr[0]節(jié)點類型為:'+aAttr[0].nodeType);//獲取第一個屬性節(jié)點的類型值 console.log('aAttr[0]節(jié)點名稱為:'+aAttr[0].nodeName);//獲取第一個屬性節(jié)點的節(jié)點名 console.log('aAttr[0]節(jié)點值為:'+aAttr[0].nodeValue);//獲取第一個屬性節(jié)點的節(jié)點值 </script> </body> </html>
訪問屬性節(jié)點列表中的元素還可以使用 item(),aAttr[0] 等效于 aAttr.item(0),另外,aAttr[0].nodeName 等效于 aAttr[0].name,aAttr[0].nodeValue 等效于 aAttr[0].value。上述代碼在 Chrome 瀏覽器中的運行結(jié)果如圖 1 所示。
【