Javascript漂流記(上)__Dom淺談

DOM:提供了一些方法,可以操作html和xml

一、DOM基本操作(document代表整個文檔,html只是文檔裏的根標籤)

     1、查看元素節點
         document.getElementById(ie8以下,同名的name屬性也可以匹配到)
         document.getElementsByTagName()[index],兼容性沒毛病
         document.getElementsByClassName()[index],ie9以下沒有
         document.getElementsByName()[index],name本身表示數據名,理論上只是部分標籤使用(表單元素,img,iframe)
         document.querySelector(),css選擇器,選出來的元素不是實時的。ie6和7沒有
         document.querySelectorAll()
      2、遍歷節點樹:
         parentNode 父節點(最頂端的parentNode爲document)
         childNodes 子節點
         firstChild
         lastChild
         nextSibling
         previousSibling
      3、遍歷元素節點樹:(除了children,都是ie9一下不兼容)
         parentElement(最頂端不到document)
         children
         其餘都加element
      4、節點的四個屬性:
         nodeName(只讀)
         nodeValue(text節點和comment節點有)
         nodeType(只讀)(1元素, 2屬性, 3文本, 8註釋, 9document, 11文檔碎片)
         attributes
      5、節點的方法
         hasChildNodes

二、DOM結構樹:一系列繼承關係()
       document --> HTMLDocument.prototype --> Document.prototype --> Node --> EventTarget --> Object.prototype
       text --> Text -- > CharacterData
       comment --> Comment  -- > CharacterData
       標籤們 --> HTMLTagElement --> HTMLElement -->Element
       getElementById定義在Document.prototype
       getElementsByTagName、getElementsByClassName、querySelector、querySelectorAll定義在Document.prototype和Element.prototype


三、DOM增刪改
     1、增
         document.createElement
         document.createTextNode
         document.createComment
         document.createDocumentFragment
      2、插入
         ParentNode.appendChild
         ParentNode.insertBefore(a,b),insert A before B
      3、刪
         parent.removeChild,謀殺,本質是剪切
         child.remove,自殺,本質是徹底銷燬
      4、替換
         parent.replaceChild(new, origin)

四、元素節點
      1、Element節點的屬性
         innerHTML,可讀可寫(常用)
         innerText,可讀可寫(老版本火狐不兼容,火狐支持textContent(老IE沒有))
      2、Element節點的方法
         elem.setAttribute('屬性名', '屬性值')
         elem.getAttribute('屬性名')


以上內容屬二哥原創,整理自 "渡一教育Javascript課程" ,一個值得推薦的"渡一教育"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章