日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
JavaScript DOM API初探

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

創(chuàng)新互聯(lián)服務項目包括郊區(qū)網站建設、郊區(qū)網站制作、郊區(qū)網頁制作以及郊區(qū)網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,郊區(qū)網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到郊區(qū)省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

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

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

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

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

接口nodeType常量nodeType值
ElementNode.ELEMENT_NODE1
TextNode.TEXT_NODE3
DocumentNode.DOCUMENT_NODE9
CommentNode.COMMENT_NODE8
DocumentFragmentNode.DOCUMENT_FRAGMENT_NODE11
AttrNode.ATTRIBUTE_NODE2

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

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

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

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

HTML專有DOM標準有一套命名規(guī)則,HTML專有接口的屬性應該以小寫字母開頭,如果屬性名有多個單詞,第二個單詞后的每個單詞首個字母大寫。當HTML性質名與JavaScript關鍵字發(fā)生沖突時,應在性質加前綴"html"來避免沖突。這個規(guī)則的一個例外是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級  執(zhí)行  

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

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

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

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

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

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

Traversal和Range API

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

【編輯推薦】

  1. JavaScript DOM的本質及操作方法
  2. 詳解JavaScript DOM中的Node節(jié)點
  3. 減少瀏覽器重解析 JavaScript DOM操作優(yōu)化方案

文章名稱:JavaScript DOM API初探
本文路徑:http://www.5511xx.com/article/cddiijg.html