日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
JavaScript DOM API初探

文檔對(duì)象模型(Doucment Object Model,DOM)是表示文檔(如HTML文檔、XML文檔)和訪問(wèn)、操作構(gòu)成文檔的各種元素的應(yīng)用程序接口。在DOM中,HTML文檔的層次結(jié)構(gòu)被表示成樹(shù)形結(jié)構(gòu)。樹(shù)的節(jié)點(diǎn)表示文檔中的各種內(nèi)容。

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

推薦閱讀:JavaScript DOM的本質(zhì)及操作方法

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

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

文檔樹(shù)中不同類(lèi)型節(jié)點(diǎn)由特定Node子接口表示,每個(gè)Node對(duì)象都有nodeType屬性,指定節(jié)點(diǎn)的類(lèi)型。常用節(jié)點(diǎn)類(lèi)型:

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

DOM樹(shù)的根節(jié)點(diǎn)是個(gè)Document對(duì)象,它的documentElement屬性引用表示文檔根元素的Element對(duì)象。大部分DOM樹(shù)由表示標(biāo)記(如和)的Element對(duì)象和表示文本串的Text對(duì)象構(gòu)成。

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

DOM標(biāo)準(zhǔn)可以與XML文檔和HTML文檔一起使用。DOM的核心API(Node、Element、Document和其他接口)相對(duì)通用,可以應(yīng)用于這兩種類(lèi)型的文檔。DOM標(biāo)準(zhǔn)還包括HTML文檔專(zhuān)有的接口(HTML***Element)。

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

HTML專(zhuān)有DOM標(biāo)準(zhǔn)有一套命名規(guī)則,HTML專(zhuān)有接口的屬性應(yīng)該以小寫(xiě)字母開(kāi)頭,如果屬性名有多個(gè)單詞,第二個(gè)單詞后的每個(gè)單詞首個(gè)字母大寫(xiě)。當(dāng)HTML性質(zhì)名與JavaScript關(guān)鍵字發(fā)生沖突時(shí),應(yīng)在性質(zhì)加前綴"html"來(lái)避免沖突。這個(gè)規(guī)則的一個(gè)例外是class性質(zhì),可以轉(zhuǎn)化成HTMLElement的className屬性。

DOM標(biāo)準(zhǔn)有兩個(gè)版本(或說(shuō)“級(jí)別”)。不同瀏覽器對(duì)DOM標(biāo)準(zhǔn)的支持程度有所不同,IE5以上版本支持使用HTML文檔的基本1級(jí)DOM接口,Netscape支持2級(jí)DOM接口,如下代碼可以檢測(cè)瀏覽器支持的DOM接口級(jí)別:

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

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

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

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

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

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

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

Traversal和Range API

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

【編輯推薦】

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

本文標(biāo)題:JavaScript DOM API初探
新聞來(lái)源:http://www.dlmjj.cn/article/cddiijg.html