《JS高程(3)》DOM節點層次Element類型-第10章筆記(13)

除了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){
        //執行某些操作
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章