JavaScript學習8:DOM進階

連江偉發表於2015-05-31

        DOM自身存在很多型別,我們在上篇部落格中提到了大部分的型別,比如Element型別:表示的是元素節點,比如Text型別:表示的是文字節點。DOM也提供了一些擴充套件功能。

        一.DOM型別

        上篇部落格我們瞭解了DOM的節點以及怎樣操作和查詢節點,而本身這些不同的節點,又有著不同的型別

        

        我們隨便來看兩個型別:Document型別和Element型別

        Document型別表示文件,或文件的根節點,而這個節點時隱藏的,沒有具體的元素標籤。

        Element型別用於表現HTML中的元素節點。在之前的文章裡,我們  已經可以對元素節點進行查詢、建立等操作,元素節點的nodeType為1,nodeName為元素的標籤名。

        元素節點物件在非IE瀏覽器可以返回它具體元素節點的物件型別。

        二.DOM擴充套件

        1 呈現模式

        從IE6開始區分標準模式和混雜模式(怪異模式),主要是看文件的宣告。IE為Document物件新增了一個名為compatMode屬性,這個屬性可以識別IE瀏覽器的文件處於什麼模式。如果是標準模式,則返回CSS1Compat,如果是混雜模式則返回BackCompat。

        2 滾動

        DOM提供了一些滾動頁面的方法,如下:

        Document.getElementById(‘box’).scrollIntoView();

        3 children屬性

        由於子節點空白問題,IE和其他瀏覽器解釋不一樣。雖然可以過濾掉,但是如果得到有效子節點,可以使用children屬性,支援的瀏覽器為:IE5+,Firefox3.5+等等。

        4 contains()方法

        判斷一個節點是不是另一個節點的後代,我們可以使用contains()方法。這個方法是IE率先使用的,開發人員無須遍歷即可獲取此資訊。

        三.DOM操作內容

        1 innerText屬性

       除了Firefox之外,其他瀏覽器均支援這個方法。但是Firefox的DOM3級提供了另一個類似的屬性:textContent,做上相容即可通用。

        2innerHTML屬性

        這個屬性我們之前介紹過,不拒絕HTML。雖然可以插入HTML,但是還是有一些限制的,也就是所謂的作用域元素,離開這個作用域就無效了。

        3outerText

        outerText在取值的時候和innerText一樣,火狐同樣不支援,而賦值方法相當危險,他不單替換了文字內容,還將元素直接抹去。

        4outerHTML

        這個使用和innerHTML一樣,同樣在賦值的時候要謹慎。

相關文章