成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript DOM API初探

開發 前端
文檔對象模型(Doucment Object Model,DOM)是表示文檔(如HTML文檔、XML文檔)和訪問、操作構成文檔的各種元素的應用程序接口,DOM樹形結構是各種類型的Node對象的樹,Node接口為遍歷和操作樹定義了屬性和方法,就這方面,文章將介紹JavaScript DOM API的用法及注意事項。

文檔對象模型(Doucment Object Model,DOM)是表示文檔(如HTML文檔、XML文檔)和訪問、操作構成文檔的各種元素的應用程序接口。在DOM中,HTML文檔的層次結構被表示成樹形結構。樹的節點表示文檔中的各種內容。

51CTO推薦閱讀:JavaScript DOM的本質及操作方法

DOM樹形結構是各種類型的Node對象的樹。Node接口為遍歷和操作樹定義了屬性和方法。Node對象的childNodes屬性將返回子節點的列表NodeList對象,firstChild、lastChild、nextSibling、previousSibling和parentNode屬性提供了遍歷樹的方法。appendChild()、removeChild()、replaceChild(old,new)和insertBefore()方法,可以給文檔樹添加節點或從文檔中刪除節點。

注意:在使用appendChild()方法時,如果參數是文檔中已存在的節點,該方法會先從文檔中去掉該節點。

文檔樹中不同類型節點由特定Node子接口表示,每個Node對象都有nodeType屬性,指定節點的類型。常用節點類型:

接口 nodeType常量 nodeType值
Element Node.ELEMENT_NODE 1
Text Node.TEXT_NODE 3
Document Node.DOCUMENT_NODE 9
Comment Node.COMMENT_NODE 8
DocumentFragment Node.DOCUMENT_FRAGMENT_NODE 11
Attr Node.ATTRIBUTE_NODE 2

DOM樹的根節點是個Document對象,它的documentElement屬性引用表示文檔根元素的Element對象。大部分DOM樹由表示標記(如<html>和<i>)的Element對象和表示文本串的Text對象構成。

Element接口的getAttribute()方法、setAttribute()方法和removeAttribute()方法可以查詢、設置和刪除一個元素的性質。還可以調用getAttributeNode()方法(該方法使用不適很方便),返回一個表示性質和它的值的Attr對象(Attr接口定義了specified屬性,可以判斷文檔中是否直接指定了該性質,或判斷它的值是否是默認值)。但要注意,Attr對象不出現在元素的childNodes[]數組中,不像Element和Text節點那樣是文檔樹的一部分。DOM標準允許通過Node接口的attributes[]數組訪問Attr節點,但IE定義了不兼容的attributes[]數組。

DOM標準可以與XML文檔和HTML文檔一起使用。DOM的核心API(Node、Element、Document和其他接口)相對通用,可以應用于這兩種類型的文檔。DOM標準還包括HTML文檔專有的接口(HTML***Element)。

DOM標準的HTML部分為其他所有HTML標記都定義了相應的接口。對大部分HTML標記來說,這些接口只是提供了一套鏡像他們的HTML性質的屬性集合。此外,某些接口還定義了其他的屬性和方法(如HTMLFormElement接口定義了submit()和reset()方法及length屬性)。

HTML專有DOM標準有一套命名規則,HTML專有接口的屬性應該以小寫字母開頭,如果屬性名有多個單詞,第二個單詞后的每個單詞首個字母大寫。當HTML性質名與JavaScript關鍵字發生沖突時,應在性質加前綴"html"來避免沖突。這個規則的一個例外是class性質,可以轉化成HTMLElement的className屬性。

DOM標準有兩個版本(或說“級別”)。不同瀏覽器對DOM標準的支持程度有所不同,IE5以上版本支持使用HTML文檔的基本1級DOM接口,Netscape支持2級DOM接口,如下代碼可以檢測瀏覽器支持的DOM接口級別:

  1. if(document.implementation &&   
  2.     document.implementation.hasFeature &&   
  3.     document.implementation.hasFeature("html","1.0")){  
  4.   .......       //如果支持HTML DOM1級  執行  

DOM API提供了引用文檔中元素的方法:

getElementsByTagName(var tagName),返回NodeList對象(NodeList對象行為與數組相似,我們可以認為這個函數返回一個以tagName指定的元素名組成的數組),它可以獲得任何類型的HTML元素的列表。注意,因為HTML標記不區分大小寫,所以傳遞給該方法的字符串也不區分大小寫。如果把"*"傳給getElementsByTagName()方法,將返回文檔中所有元素的列表,順序以在文檔中出現的順序。

getElementById(var id),該方法返回一個元素,該元素具有匹配的id屬性。Document對象和Element對象都具有這兩個方法。

Text節點的data域包含這個節點中所有字符串。document.createTextNode()方法可以創建新的Text節點。Text節點還可以用appendData()、insertData()、deleteData()和replaceData()方法添加、插入、刪除或替換一個Text節點中的文本。document.createElement(var eleName)方法可以創建新的<eleName>元素。

我們還可以調用element.setAttribute(),如**.setAttribute("align","center"),設置**的align屬性值為center,它和**.align=center有同樣的效果。把任何元素的innerHTML屬性設置為一個HTML文本串,都會使那段HTML被解析并插入以作為元素的內容。

DOM核心的API定義了DocumentFragment對象,作為使用Document節點組的快捷方法。DocumentFragment是一種特殊類型節點,它自身不出現在文檔中,只作為連續節點集合的臨時容器,并允許將這些節點作為一個對象來操作。當把一個DocumentFragment插入文檔時(用Node對象的appendChild()、insertBefore()或replaceChild()),插入的不是DocumentFragment自身,而是它的所有子節點。如顛倒n節點順序的reverse()方法:

  1.  function reverse(n){  
  2.  var inputTag = n.childNodes;  
  3.  var temp = document.createDocumentFragment();  
  4.  while(n.lastChild){  
  5.    temp.appendChild(n.lastChild);  
  6.  }  
  7.  n.appendChild(temp);  
  8.  } 

注意,在把DocumentFragment插入文檔時,段的子節點移入文檔中,插入后段是空的。

Traversal和Range API

Traversal API定義了遍歷文檔和篩選出用戶不感興趣節點的高級方法。Range API定義了操作連續范圍內的文檔內容的方法,即使那些內容不在節點的邊界處開始或結束。

【編輯推薦】

  1. JavaScript DOM的本質及操作方法
  2. 詳解JavaScript DOM中的Node節點
  3. 減少瀏覽器重解析 JavaScript DOM操作優化方案
責任編輯:王曉東 來源: 飛諾網
相關推薦

2010-09-28 15:27:09

JavaScript

2025-03-26 05:00:00

前端開發者DOM

2010-09-28 14:00:25

DOMAPI

2010-09-28 14:12:50

Javascript

2010-09-13 14:24:17

JavaScript

2010-09-13 17:12:55

JavaScript

2017-07-19 14:26:01

前端JavaScriptDOM

2010-09-10 16:21:58

JavaScript

2012-02-09 16:09:17

JavaScript

2021-03-12 00:04:52

網關Api

2013-07-19 09:50:10

Java8API

2010-09-28 12:59:45

JavaScriptDOM

2010-09-28 14:52:57

JavaScriptDOM

2010-09-28 09:14:36

HTML DOMJavascript

2010-09-28 14:35:34

DOM遍歷

2010-09-13 16:46:29

JavaScriptHTML DOM節點

2010-08-17 15:04:37

JavaScriptDOM ready

2010-09-10 13:06:27

JavaScript

2010-09-10 14:12:07

JavaScript

2010-09-08 16:50:11

JavaScriptDOM操作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲一区二区三区在线观看 | 在线免费看91 | 亚洲精品区 | 天天干夜夜拍 | 天啪 | 99精品视频在线观看免费播放 | 99久久精品免费 | 亚洲一区二区电影在线观看 | av一级久久 | 毛片a级毛片免费播放100 | 天堂在线免费视频 | 日韩在线精品 | 欧美性一区二区三区 | 亚洲国产一区二区在线 | 久久国产精品久久久久久久久久 | 午夜精品一区二区三区三上悠亚 | 日韩精品在线网站 | 日韩中文欧美 | 欧美天堂在线 | 一区在线视频 | 国产成人亚洲精品 | 在线观看欧美日韩视频 | 欧美激情一区二区三区 | 欧美日韩一区二区电影 | 亚洲欧美在线视频 | 国产日韩精品视频 | 久久久tv | 91热在线 | 中文字幕在线第一页 | 一区二区三区在线 | 欧 | 国产成人综合网 | 精品影院| 精品久久久久久亚洲综合网站 | 国产精品美女www爽爽爽视频 | 真人毛片 | 在线中文视频 | 日韩毛片中文字幕 | 成人免费看电影 | 亚洲成人精品在线观看 | 欧美日韩亚洲国产 | 久久精品黄色 |