JavaScript:DOM編程



JavaScript:DOM編程
1.節點及其類型
 1)元素節點
 2)屬性節點:元素的屬性,通常情況下, 操作屬性節點直接通過 "元素節點.屬性名" 的方式來讀寫屬性值
 3)文本節點:是元素的子節點,其內容爲文本
 例<p title="name">donot forget me</p>
 element node : p
 attribute node : title="name"
 text node :donot forget me

 2.js在html中的位置
 在<head>中,寫在window.onload = function(){  // js代碼 };
 window.onload事件,在文檔加載完成後執行,故在這裏可以獲得任何元素。

 3.如何獲取元素節點
 Element getElementById(String elementId):根據id屬性獲取對應的單個節點
 NodeList getElementByTagName(String tagName):根據標籤名獲取指定節點的集合
 NodeList getElementByName(String elementName):根據節點的name屬性獲取節點的集合
 但IE的實現方式和W3C標準有差別:在html文檔中,若某個節點(例如li)沒有name屬性,則IE使用getElementByName()不能獲取到節點,但是火狐可以

 4.獲取屬性節點
  1)**可以通過Node.id(節點.屬性)的方式來獲取和設置屬性節點的值
  2)通過元素節點getAttributeNode(name)方法來獲取屬性節點,然後再通過nodeValue來讀寫屬性值

 5.獲取元素節點的子節點(**只有元素節點纔有子節點!!)
  1)childNodes屬性獲取全部的子節點,但方法不實用。因爲如果要獲取指定的節點的指定子節點的結合,可以直接調用元素節點的getElementByTagName()方法來獲取
  2)firstChild屬性獲取第一個子節點
  3)lastChild屬性最後一個子節點
  4)parentNode屬性獲取父節點

 6.獲取文本節點:
  1)步驟:元素節點-->獲取元素節點的子節點
  2)若元素節點只有一個文本節點一個子節點
  例如<li id="bj" name="BeiJing">北京</p>
  可以先獲取到指定的元素節點eleNode,然後利用eleNode.firstChild.nodeValue的方法來讀寫其文本節點的值

  7.節點屬性(nodeType、nodeName、nodeValue)
    nodeType、nodeName、nodeValue是每個Node都有的屬性,像id、name是具體某個節點所具有的屬性
    1)nodeName:代表當前節點的名字,只讀屬性。**如果給定節點是一個文本節點,nodeName是#text
    2)nodeType:返回一個整數,這個數值代表給定節點是類型。只讀屬性。1--元素節點,2--屬性節點,3--文本節點
    **3)nodeValue:返回給定節點的當前值(字符串)。可讀寫屬性
       ①元素節點,返回值是null
       ②屬性節點,返回值是這個屬性的值
       ③文本節點,返回值是這個文本節點的內容
 8.創建一個元素節點
    1).createElement(String elementName):按照給定的標籤名創建一個新的元素節點。
    方法只有一個參數:被創建的元素節點的名字,是一個字符串。
    方法的返回值:是一個指向新建節點的引用指針,返回值是一個元素節點,所以它的nodeType屬性值等於1
    **新元素節點不會自動添加到文檔裏,它只是一個存在於JavaScript上下文的對象
 9.創建一個文本節點
    1).createTextNode(String textValue):創建一個包含着給定文本的新文本節點,返回值是一個指向新文本節點的引用指針
    方法只有一個參數:新建文本節點鎖包含的文本字符串,新元素節點不會自動添加到文檔整裏。
 10.爲元素節點添加子節點
    1)appendChild(Node node)
    var reference = element.appendChild(newChild);
    給定子節點newChild將成爲給定元素節點element的最後一個子節點
         方法的返回值是一個指向新增子節點的引用指針
 11.節點的替換
    1).replaceChild():把一個給定父元素裏的一個子節點替換爲另外一個子節點
        var reference = element.replaceChild(newChild,lodChild)
 返回值是一個指向已被替換的那個子節點的引用指針
    2).該節點除了替換功能以外還有移動的功能
    3).該方法只能完成單向替換,若需要使用雙向替換,需要自定義函數
 12.刪除節點
    1).removeChild():從一個指定元素裏刪除一個子節點
       var reference = element.removeChild(node)
       返回值是一個指向已被刪除的子節點的引用指針,某個節點被removeChild()方法刪除時,這個節點所包含的所有子節點將同時被刪除
       如果刪除某個節點,但不知道其父節點,可以通過parentNode屬性獲取
 13.插入節點
    1).insertBefore():把一個給定節點插入到一個給定元素節點的給定子節點的前面
       var reference = element.insertBefore(newNode,targetNode)
       節點newNode將被插入到元素節點element中並出現在targetNode的前面
       節點targetNode必須是element元素的一個子節點
 14.innerHTML屬性
    1).瀏覽器幾乎都支持該屬性,但不是DOM標準的組成部分
    innerHTML屬性可以用來讀寫某個給定元素裏的HTML內容
 15.其他屬性
    parentNode屬性:獲取給定元素的父節點
    nextSibling屬性:獲取給定元素的上一個元素
    previousSibling屬性:獲取給定元素的下一個元素


發佈了146 篇原創文章 · 獲贊 260 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章