DOM編程中常用的方法和屬性

來源:互聯網
上載者:User
文件物件模型DOM

 

在DOM中,HTML文檔各個節點被視為各種類型的Node對象
每個Node對象都有自己的屬性和方法,利用這些屬性和方法可以遍曆整個文檔樹
由於HTML文檔的複雜性,DOM定義了nodeType來表示節點的類型
這裡列出Node常用的幾種節點類型

介面 nodeType常量 nodeType值 備忘
Element Node.ELEMENT_NODE 1 元素節點
Attr Node.ATTRIBUTE_NODE 2 節點屬性
Text Node.TEXT_NODE 3 文本節點
Comment Node.COMMENT_NODE 8 注釋的文本
Document Node.DOCUMENT_NODE 9 document
DocumentFragment Node.DOCUMENT_FRAGMENT_NODE 11 document片段

DOM樹的根節點是一個Document對象,該對象的documentElement屬性可以擷取文檔根項目的Element對象。對於HTML文檔,這個就是<html>標記
JavaScript操作HTML文檔的時候,document即指向整個文檔,Element即為<body>、<table>等節點類型,Comment類型的節點則是指文檔的注釋
Document對象的大多數方法都是用於建立,可以插入文檔中的各種類型的節點
這裡列出了Document的常用方法

方法 描述
createAttribute() 用指定的名字建立新的Attr節點
createComment() 用指定的字串建立新的Comment節點
createElement() 用指定的標記名建立新的Element節點
createTextNode() 用指定的文本建立新的TextNode節點
getElementById() 返迴文檔中具有指定id屬性的Element節點
getElementsByTagName() 返迴文檔中具有指定標記名的所有Element節點

Attr對象代表文件項目的屬性,它有name、value等屬性,可以通過Node介面的attributes屬性或者調用Element介面的getAttributeNode()方法來擷取
不過,在大多數情況下,使用Element元素屬性的最簡單方法是調用getAttribute()和setAttribute()兩個方法,而不是Attr對象
這裡列出了Element的常用方法

方法 描述
getAttribute() 以字串形式返回指定屬性的值
getAttributeNode() 以Attr節點的形式返回指定屬性的值
getElementsByTabName() 返回一個Node數組,包含具有指定標記名的所有Element節點的子孫節點,其順序為在文檔中出現的順序
hasAttribute() 如果該元素具有指定名字的屬性,則返回true
removeAttribute() 從元素中刪除指定的屬性
removeAttributeNode() 從元素的屬性列表中刪除指定的Attr節點
setAttribute() 把指定的屬性設定為指定的字串值,如果該屬性不存在則添加一個新屬性
setAttributeNode() 把指定的Attr節點添加到該元素的屬性列表中

Node對象定義了一系列屬性和方法,以方便遍曆整個文檔
這裡列出了Node對象的常用屬性

屬性 描述
attributes 如果該節點是一個Element,則以NamedNodeMap形式返回該元素的屬性
childNodes 以Node[]的形式存放當前節點的子節點。如果沒有子節點,則返回空數組
firstChild 以Node的形式返回當前節點的第一個子節點。如果沒有子節點,則為null
lastChild 以Node的形式返回當前節點的最後一個子節點。如果沒有子節點,則為null
nextSibling 以Node的形式返回當前節點的兄弟下一個節點。如果沒有這樣的節點,則返回null
nodeName 節點的名字,Element節點則代表Element的標記名稱
nodeType 代表節點的類型。1為元素、2為屬性、3為文本....
nodeValue 擷取當前節點的值
parentNode 以Node的形式返回當前節點的父節點。如果沒有父節點,則為null
previousSibling 以Node的形式返回緊挨當前節點、位於它之前的兄弟節點。如果沒有這樣的節點,則返回null

這裡列出了Node對象的常用方法

方法 描述
appendChild() 通過把一個節點增加到當前節點的childNodes[]組,給文檔樹增加節點
cloneNode() 複製當前節點,或者複製當前節點以及它的所有子孫節點
hasChildNodes() 如果當前節點擁有子節點,則將返回true
insertBefore() 給文檔樹插入一個節點,位置在當前節點的指定子節點之前。如果該節點已經存在,則刪除之再插入到它的位置
removeChild() 從文檔樹中刪除並返回指定的子節點
replaceChild() 從文檔樹中刪除並返回指定的子節點,用另一個節點替換它

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.