除IE外全部瀏覽器均可以訪問這個類型(由於IE中的DOM對象都是以COM對象的形式實現的),並且js中的全部節點類型都繼承自Node類型。html
childNodes 返回結果是Nodelist類型,不是數組。node
Nodelist是基於DOM結構動態查詢的結果,DOM的變化能自動反映在查詢結果中。可經過方括號進行訪問,也可用item(i)進行訪問。 可經過Array。prototype.slice.call(nodelist,0) 將Nodelist類型轉化成數組,也能夠經過遍歷Nodelist將其轉化成數組。
firstChild/lastChild數組
nextSibling/previousSibling瀏覽器
parentNode緩存
ownerDocumentapp
ownerDocument:全部節點都有的屬性,指向表示整個文檔的文檔節點,任何節點都不能同時存在於多個文檔中。經過這個屬性能夠直接訪問文檔節點,而沒必要層層回溯。
appendChild()dom
insertBefore()函數
replaceChild()prototype
removeChild()code
拷貝:cloneNode()
當參數爲true時,執行深拷貝,會將該節點的子節點也拷貝。可是這個函數不會複製添加到節點中的js屬性,例如時間處理程序,這個只複製特性、子節點(指定true時)。(IE瀏覽器中另說)
getElementById()
注意IE7及較低版本瀏覽器的怪癖:會返回name值爲指定‘ID’的input元素。
getElementsByTagName()
返回的是HTMLCollection對象,是一個動態集合。
getElementsByName()
document對象是HTMLDocument類型的一個實例,HTMLDocument繼承自Document。而且,document對象是window對象的一個屬性。
documentElement屬性直接指向html元素
body屬性,指向body元素
doctype屬性,指向文檔聲明標籤
title
domain
不一樣子域的頁面沒法經過js通訊,設爲相同就可互相訪問對方的js對象了。 域名屬性剛開始是鬆散的不能將它再設置爲緊繃的。
URL
document.images 全部image元素
document.links 全部有href的a元素
document.anchors 全部帶name特性的a元素
createElement()
createTextNode()
createDocumentFragment()
createAttribute()
document.implementation.hasFeature()
通常不要相信這個的檢測結果,由於能夠自行修改結果。
document.write()
document.writeln()
若是在文檔加載完畢後寫入會重寫整個頁面。
document.open()
document.close()
若是是在頁面加載期間寫入,則不須要用到這兩個方法。
全部的元素都是經過HTMLElementle類型或其自類型表示的,HTMLElement類型繼承自Element類型。
getAttribute()
setAttribute()
removeAttribute()
任何元素的全部特性,也均可以經過DOM元素的自己的屬性來訪問。 只有公認的(不是自定義的)特性纔會以屬性的形式添加到DOM對象中。 有些特性經過屬性訪問和getAttribute()訪問的結果可能不一樣,例如style特性和事件處理程序 給元素添加自定義屬性,該屬性不會變成特性 總而言之就是:自定義的特性不能經過屬性的方式訪問,自定義的屬性不能經過getAttribute訪問(應該是這樣)。
attributes屬性
通常用來遍歷特性時使用(element.attributes.length)
繼承Node類型的childNodes等屬性和建立,查找,添加刪除子節點等方法。
可經過nodeValue或data屬性訪問Text節點中包含的文本。
操做文本節點中的文本:
appendData() deleteData() replaceData() insertData() splitText()
當兩個文本節點相鄰時,可經過normalize()將其變成一個文本節點。normalize()是從node類型繼承的函數
分割文本節點
textnode.splitText(5) 返回一個新文本節點,且該節點與原節點的parentNode相同
在文檔中沒有標記。
文檔片斷永遠不會成爲文檔的一部分。當經過appendchild將文檔片斷添加到文檔中時,只是將文檔片斷的子節點添加到文檔中,文檔片斷將會刪除這些子節點。
當須要添加多個子節點時,若是一個一個添加,那麼將會致使瀏覽器的反覆渲染,這時能夠將這些子節點添加到文檔片斷中,而後再添加到文檔中。
7.1 動態添加腳本
7.2 動態添加樣式
7.3 操做表格
7.4 NodeList
最好將length的值保存在一個變量中,由於length的值是動態的。 訪問NodeList至關於一次基於文檔的查詢,因此要少訪問NodeList,或將其存在緩存中。