除了Document類型之外,Element類型是Web編程中最常用的類型。
Element類型用於表現XML或HTML元素,提供了對元素標籤名、子節點及特性的訪問。
nodeType的值: | 1 |
---|---|
nodeName的值: | 元素的標籤名 |
nodeValue的值: | null |
parentNode的值: | Document/Element |
子節點 | Element、Text、Comment、ProcessingInstruction、CDATASection、EntityReference |
<div id = "myDiv"></div>
var div = document.getElementById("myDiv");
// HTML中,標籤名始終都以全部大寫表示
//XML(XHTML標籤名始終會與源代碼保持一致)
alert(div.tagName);//"DIV"
alert(div.tagName == div.nodeName)//true
HTML元素
id | 元素在文檔中的唯一標識符 |
---|---|
title | 通過工具提示條顯示出來 |
lang | 元素內容的語言代碼 |
dir | 語言方向,值爲“ltr”(從左至右)或”rtl”(從右至左)很少用 |
className | 與元素的class特性對應,即爲元素指定的CSS類 |
<div id = "myDiv" class = "bd" title = "body text" lang = "en" dir = "ltr">
var div = document.getElementById("myDiv");
alert(div.id); //"myDiv"
alert(div.className); //"bd"
alert(div.title); //"body text"
alert(div.lang); //"en"
alert(div.dir); //"ltr"
取得和修改特性
每個元素都有一個或多個特性,這些特性的用途是給出相應元素或其內容的附加信息,操作特性的DOM方法主要有三個:
方法 | 參數 | 功能 |
---|---|---|
getAttribute() | 接收一個參數:與實例名相同 | 獲取自定義特性 |
setAttribute() | 接收兩個參數:要設置的特性名和值 | 修改或創建該屬性並設置相應的值 |
removeAttribute() | 接受一個參數:所要刪除的元素名 | 徹底刪除元素的特性 |
var div = document.getElementById("myDiv");
alert (div.getAttribute("id")); //"myDiv"
getAttribute()不經常使用,,只是用對象的屬性,在取得自定義特性值的情況下,纔會是有用getAttribute().
attributes屬性
Element類型是使用attributes屬性的唯一一個DOM節點類型。
attributes屬性中包含一個NameNodeMap,與NodeList類似,是一個動態集合。
創建元素
方法 | 參數 | 功能 |
---|---|---|
document.createElement() | 接收一個參數:既要創建元素的標籤名 | 創建新元素 |
var div = document.createElement("div");
//將元素添加到<body>元素中
document.body.appendChild(div);
元素的子節點
元素可以由任意樹木的子節點和後代節點,因爲元素可以是其他元素的子節點。
<ul id = "myList">
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
在IE瀏覽器中,< ul>元素有3個子節點,分別是3個< li>元素;在其他瀏覽器中有7個元素,分別是3個< li>元素和4個文本節點(< li>元素的空百符),把所有的空白符刪除,那麼所有瀏覽器就會返回相同的子節點。
因此在執行某項操作前,都要先檢查一下nodeType屬性:
for (var i = 0, len = element.childNodes.length; i < len; i++){
//遍歷子節點,當子節點的nodeType等於1的情況下,纔會執行某些操作
if(element.childNodes[i].nodeType == 1){
//執行某些操作
}
}