精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在JavaScript中如何實(shí)現(xiàn)DOM操作

開發(fā) 前端
對于JavaScript DOM,首先需要理解的一點(diǎn)是,DOM是針對XML的基于樹的API,它的實(shí)現(xiàn)有很多,包括HTML DOM以及XML DOM,而本文主要討論JavaScript DOM的基礎(chǔ)知識。

對于JavaScript DOM,首先需要理解的一點(diǎn)是,DOM是針對XML的基于樹的API,它的實(shí)現(xiàn)有很多(各語言基本都有自己的實(shí)現(xiàn)),文章將討論的是JavaScript中或者說xhtml(html)對DOM的實(shí)現(xiàn)。

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

使用DOM

考慮一個(gè)html文件:

  1. <html> 
  2. <head><title>測試</title></head> 
  3. <body> 
  4. <p>測試</p> 
  5. </body> 
  6. </html> 

1.訪問節(jié)點(diǎn)

◆訪問html元素:var oHtml=document.documentElement;

◆獲取head元素:var oHead=oHtml.firstChild;

◆獲取body元素:var oBody=oHtml.lastChild; 或者 var oBody=document.body;

也可以通過childNodes來做同樣的工作:

  1. var oHead=oHtml.childNodes[0] 或者 oHtml.childNodes.item(0);  
  2. var oBody=oHtml.childNodes[1] 或者 oHtml.childNodes.item(1); 

判斷節(jié)點(diǎn)間關(guān)系:

  1. alert(oHead.parentNode==oHtml);    
  2. alert(oBody.previousSibling==oHead);  
  3. alert(oHead.nextSibling==oBody);  
  4. alert(oHead.ownerDocument==document); 

2.檢測節(jié)點(diǎn)類型

通過節(jié)點(diǎn)的nodeType屬性來檢驗(yàn)節(jié)點(diǎn)類型:

  1. alert(document.nodeType);  //輸出9 

需要注意的是,DOM兼容的瀏覽器(以FF2.0為例),擁有Node.DOCUMENT_NODE、Node.ELEMENT_NODE等常量。各常量名稱與數(shù)值對照表如下:

  1. ELEMENT_NODE                                 1  
  2. ATTRIBUTE_NODE                            2  
  3. TEXT_NODE                                         3  
  4. CDATA_SECTION_NODE                 4  
  5. ENTITY_REFERENCE_NODE            5  
  6. ENTITY_NODE                                     6  
  7. PROCESSING_INSTRCTION_NODE       7  
  8. COMMENT_NODE                              8  
  9. DOCUMENT_NODE                            9  
  10. DOCUMENT_TYPE_NODE               10  
  11. DOCUMENT_FRAGMENT_NODE   11  
  12. NOTATION_NODE                              12  
  13.  

IE6不支持,不過你可以自定義一個(gè)JavaScript對象Node。

3.處理特性

處理特性可以使用標(biāo)準(zhǔn)的NameNodeMap中的方法:

  1. getNamedItem(name) removeNamedItem(name)  setNamedItem(node)    item(pos) 

比如:<p id="test">測試</p>,假設(shè)變量oP是上面的p節(jié)點(diǎn)的引用,我們要訪問oP的id屬性:

  1. var sId=oP.attributes.getNamedItem("id").nodeValue; 

這些方法用起來很累贅,所以DOM又定義了三個(gè)方法來簡化:

  1. getAttribute(name)         ——返回名稱為name的屬性的值  
  2. setAttribute(name,value)   ——顧名思義  
  3. removeAttribute(name)      ——顧名思義  

上面的例子可以改寫為:

  1. var sId=oP.getAttribute("name"); 

4.訪問指定節(jié)點(diǎn)

熟知的getElementByTagName(name),getElementByName(name),getElementById(id)三個(gè)方法,不再展開。

#p#

5.創(chuàng)建和操作節(jié)點(diǎn)

(1)創(chuàng)建新節(jié)點(diǎn),一張IE(6.0)和FF對DOM Level1的創(chuàng)建新節(jié)點(diǎn)方法支持的對照表:

  1. 方法                                                               IE                               FF  
  2. createAttribute(name)                                 Y                                Y  
  3. createCDATASection(text)                        N                                Y  
  4. createComment(text)                                    Y                                Y  
  5. createDocumentFragment()                        Y                                Y  
  6. createElement(tagName)                             Y                                 Y  
  7. createEntityReference(name)                     N                                 Y  
  8. createProcessingInstruction(  
  9. target,data)                                                   N                                  Y  
  10. createTextNode(text)                                  Y                                   Y 

(2)createElement(),createTextNode(),appendChild()

  1. 例子:  
  2. <html> 
  3.     <head> 
  4.         <title>createElement() Example</title> 
  5.         <script type="text/JavaScript"> 
  6.             function createMessage() {  
  7.                 var oP = document.createElement("p");  
  8.                 var oText = document.createTextNode("Hello World!");  
  9.                 oP.appendChild(oText);  
  10.                 document.body.appendChild(oP);  
  11.             }  
  12.         </script> 
  13.     </head> 
  14.     <body onload="createMessage()"> 
  15.     </body> 
  16. </html> 

在頁面載入后,創(chuàng)建節(jié)點(diǎn)oP,并創(chuàng)建一個(gè)文本節(jié)點(diǎn)oText,oText通過appendChild方法附加在oP節(jié)點(diǎn)上,為了實(shí)際顯示出來,將oP節(jié)點(diǎn)通過appendChild方法附加在body節(jié)點(diǎn)上。此例子將顯示Hello World!

(3)removeChild(),replaceChild()和insertBefore()

從方法名稱就知道是干什么的:刪除節(jié)點(diǎn),替換節(jié)點(diǎn),插入節(jié)點(diǎn)。需要注意的是replaceChild和insertBefore兩個(gè)參數(shù)都是新節(jié)點(diǎn)在前,舊節(jié)點(diǎn)在后。

(4)createDocumentFragment()

此方法主要是為了解決大量添加節(jié)點(diǎn)時(shí),速度過慢。通過創(chuàng)建一個(gè)文檔碎片節(jié)點(diǎn),將要添加的新節(jié)點(diǎn)附加在此碎片節(jié)點(diǎn)上,然后再將文檔碎片節(jié)點(diǎn)append到body上面,替代多次append到body節(jié)點(diǎn)。

  1. <html> 
  2.     <head> 
  3.         <title>insertBefore() Example</title> 
  4.         <script type="text/JavaScript"> 
  5.             function addMessages() {  
  6.                 var arrText = ["first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth"];  
  7.                   
  8.                 var oFragment = document.createDocumentFragment();  
  9.                   
  10.                 for (var i=0; i < arrText.length; i++) {  
  11.                     var oP = document.createElement("p");  
  12.                     var oText = document.createTextNode(arrText[i]);  
  13.                     oP.appendChild(oText);  
  14.                     oFragment.appendChild(oP);  
  15.                 }  
  16.                   
  17.                 document.body.appendChild(oFragment);  
  18.  
  19.             }  
  20.         </script> 
  21.     </head> 
  22.     <body onload="addMessages()"> 
  23.  
  24.     </body> 
  25. </html> 

HTML DOM的特征功能

HTML DOM的特性和方法不是標(biāo)準(zhǔn)的DOM實(shí)現(xiàn),是專門針對HTML同時(shí)也讓一些DOM操作變的更加簡便。

1.讓特性像屬性一樣

訪問某元素的特性需要用到getAttribute(name)方法,HTML DOM擴(kuò)展,可以直接使用同樣名稱的屬性來獲取和設(shè)置這些值,比如:

  1. <img src="test.jpg"/> 

2.table的系列方法:

為了簡化創(chuàng)建表格,HTML DOM提供了一系列的表格方法,常用幾個(gè):

◆cells  ——返回</tr>元素中的所有單元格

◆rows   ——表格中所有行的集合

◆insertRow(position) ——在rows集合中指定位置插入新行

◆deleteRow(position) ——與insertRow相反

◆insertCell(position) ——在cells集合的指定位置插入一個(gè)新的單元格

◆deleteCell(position) ——與insertCell相反

遍歷DOM

DOM的遍歷是DOM Level2中提出的標(biāo)準(zhǔn),IE6沒有實(shí)現(xiàn),Mozilla和Safari已經(jīng)實(shí)現(xiàn),最新IE7不清楚是否實(shí)現(xiàn)。

【編輯推薦】

  1. JavaScript DOM的本質(zhì)及操作方法
  2. 詳解JavaScript DOM中的Node節(jié)點(diǎn)
  3. 減少瀏覽器重解析 JavaScript DOM操作優(yōu)化方案 
責(zé)任編輯:王曉東 來源: 博客園
相關(guān)推薦

2010-09-13 17:12:55

JavaScript

2021-04-09 18:01:03

前端ReactDOM

2016-04-06 11:29:58

JavaScriptDOM操作

2017-07-19 14:26:01

前端JavaScriptDOM

2010-09-28 15:12:27

Javascript

2010-09-28 14:52:57

JavaScriptDOM

2009-06-18 12:21:07

javascriptdom

2010-09-08 15:47:08

JavsScriptJavaScript

2010-09-28 15:07:48

JavaScript

2010-09-28 12:59:45

JavaScriptDOM

2021-06-03 10:00:47

JavaScript 前端數(shù)克隆對象

2010-08-17 15:04:37

JavaScriptDOM ready

2010-06-07 16:55:00

JavaScript

2010-09-08 15:13:09

Node節(jié)點(diǎn)Node屬性

2009-03-13 13:58:10

Javascript哈希表偽哈希表

2009-04-09 15:40:01

JSONJavaScript枚舉

2009-06-23 14:22:00

DOM文檔XML文件Java

2021-04-07 06:00:18

JavaScript 前端并發(fā)控制

2019-12-25 15:41:50

JavaScript程序員編程語言

2010-09-28 14:12:50

Javascript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

一区二区精彩视频| 国产精品九九九九| 中文字幕21页在线看| 免费成人美女在线观看| 日韩免费电影网站| 日韩三级在线播放| 日韩成人短视频| 三上悠亚一区二区| 粉嫩av亚洲一区二区图片| 国产亚洲精品久久久| 99re6这里有精品热视频| 国产字幕在线观看| 女同一区二区三区| 亚洲综合在线免费观看| 国产精品久久久久久五月尺| 影音先锋黄色资源| 在线黄色网页| 奇米888四色在线精品| 精品调教chinesegay| 狠狠干视频网站| 在线观看中文字幕2021| 在线看成人短视频| 日韩欧美主播在线| 国产精品香蕉视屏| 免费一级片在线观看| japansex久久高清精品| 国产精品国产精品国产专区不片| 国产91精品久久久久久| 午夜剧场免费看| 91精品国产黑色瑜伽裤| 国产成人日日夜夜| 久久艳片www.17c.com| www.超碰97.com| 在线播放日本| 久久成人麻豆午夜电影| 色噜噜久久综合伊人一本| 看欧美ab黄色大片视频免费| 亚洲日本aⅴ片在线观看香蕉| 国产欧美 在线欧美| 中文字幕人妻一区二区| 牛牛精品一区二区| 9人人澡人人爽人人精品| 欧美激情高清视频| 亚洲成人精品在线播放| 亚洲综合影视| 岛国一区二区三区| 国语自产偷拍精品视频偷| 久久久无码人妻精品无码| 青春草免费在线视频| 国产精品自拍在线| 欧美激情高清视频| 亚洲一区二区三区无码久久| 涩涩涩视频在线观看| 91看片淫黄大片一级在线观看| 91av网站在线播放| 一级黄色性视频| 欧美日韩在线精品一区二区三区激情综合 | 少女频道在线观看高清| 国产高清精品在线| 国外色69视频在线观看| 88久久精品无码一区二区毛片| 欧美性理论片在线观看片免费 | 成人欧美一区二区三区黑人一| 亚洲人体在线| 亚洲成人av在线电影| 国产在线资源一区| 人妻中文字幕一区二区三区| 97精品在线| 亚洲第一精品自拍| 国产精品69页| 影院在线观看全集免费观看| wwww国产精品欧美| 国产在线日韩在线| 日韩手机在线观看| 久久神马影院| 日韩av综合网站| 熟女人妇 成熟妇女系列视频| 黄色精品在线观看| 26uuu久久综合| 成人黄色在线播放| 青青操免费在线视频| 欧美少妇xxxx| 亚洲国产精久久久久久| 美女黄色片视频| 国产99re66在线视频| 久久理论电影网| 99久久精品久久久久久ai换脸| 久久亚洲天堂网| 久久久久久美女精品| 亚洲激情在线观看| www.欧美激情.com| 五月激情久久| 午夜亚洲国产au精品一区二区| 亚洲午夜久久久影院伊人| 亚洲欧美另类综合| 精品在线一区二区三区| 日韩美女福利视频| 国产精品111| 国产精品99一区二区三区| 日韩精品久久久久久久玫瑰园| 久久精品国产99久久99久久久| 91av亚洲| 精品久久久久人成| 欧美精品在欧美一区二区| 一级日本在线| 久久久久久久久久看片| 久99久在线| 成人av手机在线| 极品少妇xxxx偷拍精品少妇| 国产精品1区2区在线观看| 久久精品国产亚洲AV无码男同| 国产精品二区不卡| 在线播放日韩av| 谁有免费的黄色网址| 日韩av中文字幕一区| 欧美tickling网站挠脚心| 国产欧美一区二| 国产极品嫩模在线观看91精品| 精品久久久久久中文字幕一区奶水| 激情成人开心网| 色帝国亚洲欧美在线| 亚洲日本丝袜连裤袜办公室| 一区二区av| jizz在线观看| 国产精品卡一卡二| 亚洲精品9999| 国产美女性感在线观看懂色av| 91麻豆123| 久久亚洲国产精品日日av夜夜| 五月激情丁香婷婷| 91在线免费视频观看| 久久久久综合一区二区三区| 日韩性xxxx| av欧美精品.com| 国产精品日韩欧美一区二区三区| 亚洲春色一区二区三区| 国产麻豆欧美日韩一区| 91在线国产电影| 成人av无码一区二区三区| 国产91精品精华液一区二区三区| 成人xxxxx色| 狠狠躁日日躁夜夜躁av| 久久久久资源| 中文字幕在线一区免费| 国产精品吹潮在线观看| 国产主播在线观看| 91一区二区| 久久激情视频久久| 少妇久久久久久久久久| 亚洲专区视频| 亚洲欧美视频在线| wwwwww日本| 精品日韩免费| xxxxx91麻豆| www青青草原| 亚洲另类黄色| 国产精品视频免费在线| 99在线观看免费| 国产sm精品调教视频网站| 国产不卡一区二区在线观看| 一本大道久久加勒比香蕉| 免费黄色片网站| 7777久久香蕉成人影院| 国内伊人久久久久久网站视频 | 国产三区精品| 免费在线黄色网址| 中文字幕一区二区三区不卡在线| 穿情趣内衣被c到高潮视频| 黄毛片在线观看| 欧美在线你懂的| 国产在线视频三区| 最新国产精品视频| 日韩在线视频观看| 中文字幕第15页| 国产精品自拍在线| 日韩国产一区久久| 黄色成人在线观看| 日韩欧美在线视频| 熟女人妻一区二区三区免费看| 久久99性xxx老妇胖精品| 欧美成人全部免费| 在线免费观看国产精品| 国产精品一区二区久激情瑜伽| 麻豆成人小视频| 99自拍视频在线观看| 在线看不卡av| 国产精品久久久久久亚洲色| 亚洲破处大片| 国产精品视频一区二区高潮| 婷婷视频在线观看| 亚洲欧美另类久久久精品2019| 91九色在线观看视频| 久久精品九色| 中文字幕欧美日韩va免费视频| 久久久久久久久久久久久久av| 国产真实乱对白精彩久久| 日本一区二区三区视频免费看| 波多野结衣在线观看| 日韩一区二区三免费高清| 国产精品国产三级国产专业不| 亚洲激情综合| 国产精品国模大尺度私拍| 黄色网在线免费看| 欧美日韩精品三区| 在哪里可以看毛片| 99在线精品视频在线观看| 91av一区二区三区| 日本视频在线观看| 欧美日韩在线播放三区| 瑟瑟视频在线观看| 亚洲一区二区三区免费在线观看| 亚洲在线免费视频| 成人免费在线| 日韩欧美在线123| 91日韩中文字幕| 国内精品伊人久久久久av一坑 | av天堂一区二区三区| 国产精品丝袜一区| 黄色av免费在线播放| 香蕉视频一区二区三区| 97色在线观看免费视频| 你懂的网站在线| 亚洲成人中文在线| 成人免费看片载| 在线成人h网| 精品久久久久亚洲| 亚洲人体影院| 亚洲色图美腿丝袜| 波多野结衣高清视频| 国产亚洲成av人在线观看导航| 日本中文字幕片| 红桃成人av在线播放| 国产精品久久久久久久久久久久久| 精品av中文字幕在线毛片| 色88888久久久久久影院按摩| 欧美狂猛xxxxx乱大交3| 日韩精品欧美成人高清一区二区| 日韩hmxxxx| av在线播放一区二区| 欧美裸体xxxx极品少妇| 亚洲男人第一天堂| 黄色成人在线免费| 亚洲av熟女国产一区二区性色 | 最新国产精品久久精品| 激情文学亚洲色图| 欧美日本不卡| 久草一区二区| 国产成人a视频高清在线观看| 日日噜噜噜夜夜爽亚洲精品| av免费在线不卡| 精品欧美aⅴ在线网站| 国产视频不卡在线| 国产aⅴ精品一区二区三区色成熟| 国产美女在线一区| 欧美午夜精彩| 97超碰最新| 日韩pacopacomama| 欧美成人一二三| 青春草在线观看| 欧美三区在线视频| 久视频在线观看| 国产日韩高清在线| 在线观看免费看片| 香蕉久久夜色精品国产| 一区一区视频| 久久九九热re6这里有精品 | 国产成人无码精品| 中文字幕不卡三区| 美女久久久久久久久| 免费观看在线色综合| 91动漫在线看| 欧美亚洲国产激情| 九色91视频| 国产一区二区| 国产成人在线播放| 女同一区二区免费aⅴ| 亚洲视屏在线播放| 国产91绿帽单男绿奴| 欧美色男人天堂| 国产剧情在线视频| 亚洲影院免费观看| 国产第一页精品| 久久综合99re88久久爱| 超碰中文字幕在线观看| 日产欧产美韩系列久久99| 国产成人在线小视频| 日韩欧美一区二区三区免费看| 美女三级99| 2020最新国产精品| 成人黄色中文字幕| 影视一区二区三区| 91av成人在线| 免费在线观看的电影网站| 中文字幕在线精品| 国产私人尤物无码不卡| 亚洲国产日韩欧美综合久久| 精品久久久久久亚洲综合网站| 精品污污网站免费看| 国产精品人人人人| 五月婷婷综合在线| 久草免费在线观看视频| 18成人在线观看| 精品亚洲aⅴ无码一区二区三区| caoporen国产精品视频| 在线播放第一页| 国v精品久久久网| 中文字幕乱妇无码av在线| 久久er精品视频| 超碰超碰在线观看| 可以看av的网站久久看| 国产精品无码一区二区在线| 1024日韩| 日韩少妇内射免费播放| av成人黄色| koreanbj精品视频一区| 在线一区欧美| 鲁一鲁一鲁一鲁一色| 国产日韩1区| www.av中文字幕| 亚洲视频大全| 日本精品久久久久中文字幕| 亚洲视频1区| 免费大片在线观看| 日本免费新一区视频| 日韩视频免费在线播放| 美女一区二区三区在线观看| 超碰在线人人爱| 久久99国产精品尤物| 天天操天天干天天做| 国内一区二区视频| 免费国偷自产拍精品视频| 国产精品香蕉一区二区三区| 熟女人妻一区二区三区免费看 | 国产三级国产精品| 91欧美激情一区二区三区成人| 久久精品老司机| 国产视频一区二区三区在线观看| 一区二区三区伦理片| 国产精品日韩精品欧美在线| 五月综合色婷婷| 亚洲一区二区三区四区五区黄 | 日韩欧美在线中文字幕| 黄色污污视频软件| 欧美精品久久99| 成人福利小视频| 亚洲电影免费观看高清| 免费国产在线视频| 中文字幕精品www乱入免费视频| 色欧美激情视频在线| 欧美激情极品视频| 婷婷电影在线观看| 国产一区深夜福利| 成人免费在线电影网| 美乳视频一区二区| 99久久99久久精品国产片桃花| 九一免费在线观看| 噜噜噜91成人网| 国产美女视频免费看| 岛国一区二区三区| 亚洲黄色网址大全| 亚洲资源中文字幕| 波多野结衣理论片| 日韩欧美中文一区| 黄色av网站在线| 欧美激情小视频| 日本肉肉一区| 精品国产电影| 国产精品久久久久蜜臀| 激情五月宗合网| 国产一区二区三区美女| 久久久亚洲av波多野结衣| 亚洲视频一区在线| 成人毛片在线播放| 欧美一区二区视频网站| 国产资源在线播放| 欧美激情一区二区三区在线视频观看| 成人不卡视频| 国产精品综合久久久久久| 青青草国产免费一区二区下载| 免费人成在线观看视频播放| 麻豆成人免费电影| 四虎影成人精品a片| 亚洲综合免费观看高清完整版在线 | 奇米影视777在线欧美电影观看 | 91女主播在线观看| 97婷婷涩涩精品一区| 亚洲18在线| 日韩av高清在线播放| 国产精品日本| 香蕉在线观看视频| 亚洲欧洲韩国日本视频| 一二三区免费视频| 亚洲黄色www| 天堂av最新在线| 91久久久久久| 欧美wwwww| 我要看一级黄色大片| 26uuu亚洲| 日韩aaaaaa| 精品久久一区二区|