自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析Javascript Dom編程

開發(fā) 前端
這里向大家描述一下Javascript Dom編程,DOM編程技術(shù)背后的思路和原則:預(yù)留退路、循序漸進和以用戶為中心等,這些概念對于任何前端Web開發(fā)工作都非常重要。

你對Javascript Dom編程是否了解,在DOM模型中,每一個元素(element)、屬性(attribute)、文本(text)都可以看做是一個對象,javascript可以訪問獨立訪問這些對象,用一些方法可以找到和改變這些對象。

Javascript Dom編程

一:Document Object Model

在DOM模型中,每一個元素(element)、屬性(attribute)、文本(text)都可以看做是一個對象,javascript可以訪問獨立訪問這些對象,用一些方法可以找到和改變這些對象。

DOM模型

DOM是這樣規(guī)定的,每個HTML的標(biāo)簽是一個元素節(jié)點,包含在元素中的文本是文本節(jié)點,每一個HTML屬性是一個屬性節(jié)點。

二:訪問DOM的節(jié)點

A:通過ID獲取元素

  1. vartarget=document.getElementById("berenger");  
  2.  

B:通過TagName獲取元素

  1. varlistItems=document.getElementsByTagName("li");  
  2.  

listItems是一個類似數(shù)組的對象,可以用listItems.Length來獲得對象的長度。

C:通過ClassName獲取元素

Javascript Dom編程中大多數(shù)情況下使用className來獲取元素比tagname要簡便,但是dom沒有提供相應(yīng)的函數(shù),所以我們要創(chuàng)建一個方法。

可以分解為以下三步:

1:搜索文檔中的所有元素。

2:對每一個元素,把所屬的class和所要找尋的class做比較。

3:如果相同,添加到list中。

js代碼如下:

  1. VarCore={};  
  2.  
  3. Core.getElementsByClass=function(theClass)  
  4. {  
  5. varelementArray=[];  
  6. //IE中不支持getElementsByTagName("*"),用document.All。  
  7. if(document.all)  
  8. {  
  9. elementArray=document.all;  
  10. }  
  11. else  
  12. {  
  13. elementArray=document.getElementsByTagName("*");  
  14. }  
  15. varmatchedArray=[];  
  16. varpattern=newRegExp("(^|)"+theClass+"(|$)");  
  17. for(vari=0;i<elementArray.length;i++)  
  18. {  
  19. if(pattern.test(elementArray[i].className))  
  20. {  
  21. matchedArray[matchedArray.length]=elementArray[i];  
  22. }  
  23. }  
  24. returnmatchedArray;  
  25. };  
  26.  

 #p#三:操縱DOM樹

parentNode:父元素。

childNodes:子元素。

firstChild:***個節(jié)點。

lastChild:***一個節(jié)點。

nextSibling:下一個同級節(jié)點。

previousSinbling:上一個同級節(jié)點。下面看一下Javascript Dom編程中的屬性用法。

Javascript Dom編程之操縱DOM樹

四:屬性

A:獲得屬性值(getAttribute)

  1. <aidaid="koko"href="http://www.163.com">163</a> 
  2.  
  3. //js  
  4.  
  5. varkoko=document.getElementById("koko");  
  6.  
  7. varkokoHref=koko.getAttribute("href");  
  8.  

 注:getAttribute不能用document對象調(diào)用。

B:設(shè)置屬性值(setAttribute)

setAttribute不但可以修改現(xiàn)有屬性的值,而且可以添加新的屬性,類似getAttribute,它不能通過document調(diào)用,只能通過元素節(jié)點來調(diào)用。需要傳遞兩個參數(shù):

obiect.setAttribute(attribute,value)

例子

  1. varkoko=document.GetElementById("koko");  
  2.  
  3. koko.setAttribute("title","websiteinchina");  

#p#五:javascript與樣式

A:style.style

Javascript Dom編程中中每一個元素節(jié)點都包含一個style.style,來改變此元素的呈現(xiàn)。

例:改變元素文本的顏色用style.Color

  1. Varscarlet=document.getElementById("scarlet");  
  2.  
  3. scarlet.style.Color="#FF0000";  

B:使用class改變樣式

在css中,內(nèi)嵌的樣式表被看做是不好的習(xí)慣,那么***的改變元素呈現(xiàn)的方法就是使用javascript改變元素的class。

首先我們判斷是否含有要改變的class。

  1. Core.hasClass=function(target,theClass)  
  2. {  
  3. varpattern=newRegExp("(^|)"+theClass+"(|$)");  
  4.  
  5. if(pattern.test(target.className))  
  6. {  
  7. returntrue;  
  8. }  
  9. returnfalse;  
  10. };  
  11.  

 1:添加class

  1. Core.addClass=function(target,theClass)  
  2. {  
  3. if(!Core.hasClass(target,theClass))  
  4. {  
  5. if(target.className=="")  
  6. {  
  7. target.className=theClass;  
  8. }  
  9. else  
  10. {  
  11. target.className+=""+theClass;  
  12. }  
  13. }  
  14. };  
  15.  

 2:清除class

  1. Core.removeClass=function(target,theClass)  
  2. {  
  3. varpattern=newRegExp("(^|)"+theClass+"(|$)");  
  4. targettarget.className=target.className.replace(pattern,"$1");  
  5. targettarget.className=target.className.replace(/$/,"");  
  6. };  
  7.  

【編輯推薦】

  1. 技術(shù)分享 如何獲取Dom元素的X/Y坐標(biāo)
  2. JQuery創(chuàng)建DOM元素方法解析
  3. JavaScript獲取HTML DOM節(jié)點元素詳解
  4. JavaScript和DOM輕松實現(xiàn)數(shù)據(jù)訪問
  5. HTML DOM與XML DOM的區(qū)別與聯(lián)系探究

 

責(zé)任編輯:佚名 來源: cnblogs.com
相關(guān)推薦

2015-08-11 09:46:26

JavaScriptDOM編程重排

2010-09-08 17:26:46

JavaScript

2010-09-13 17:12:55

JavaScript

2010-09-13 14:24:17

JavaScript

2021-05-26 05:22:09

Virtual DOMSnabbdom虛擬DOM

2011-03-10 14:19:56

JavaScript

2017-07-19 14:26:01

前端JavaScriptDOM

2010-09-10 16:21:58

JavaScript

2009-07-14 11:34:42

MyEclipse斷點JavaScript

2021-07-27 22:56:00

JavaScript編程開發(fā)

2009-07-22 15:21:00

iBATIS SQLM

2010-09-28 15:27:09

JavaScript

2010-09-28 14:52:57

JavaScriptDOM

2010-09-13 16:46:29

JavaScriptHTML DOM節(jié)點

2010-09-28 14:35:34

DOM遍歷

2010-09-28 12:59:45

JavaScriptDOM

2010-09-28 09:14:36

HTML DOMJavascript

2010-09-10 14:12:07

JavaScript

2010-09-28 08:54:49

JavascriptDOM

2010-09-08 15:13:09

Node節(jié)點Node屬性
點贊
收藏

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