浅析Javascript Dom编程
创始人
2024-07-15 03:51:11
0

你对Javascript Dom编程是否了解,在DOM模型中,每一个元素(element)、属性(attribute)、文本(text)都可以看做是一个对象,javascript可以访问独立访问这些对象,用一些方法可以找到和改变这些对象。

Javascript Dom编程

一:Document Object Model

在DOM模型中,每一个元素(element)、属性(attribute)、文本(text)都可以看做是一个对象,javascript可以访问独立访问这些对象,用一些方法可以找到和改变这些对象。

DOM模型

DOM是这样规定的,每个HTML的标签是一个元素节点,包含在元素中的文本是文本节点,每一个HTML属性是一个属性节点。

二:访问DOM的节点

A:通过ID获取元素

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

B:通过TagName获取元素

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

listItems是一个类似数组的对象,可以用listItems.Length来获得对象的长度。

C:通过ClassName获取元素

Javascript Dom编程中大多数情况下使用className来获取元素比tagname要简便,但是dom没有提供相应的函数,所以我们要创建一个方法。

可以分解为以下三步:

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
  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:***个节点。

lastChild:***一个节点。

nextSibling:下一个同级节点。

previousSinbling:上一个同级节点。下面看一下Javascript Dom编程中的属性用法。

Javascript Dom编程之操纵DOM树

四:属性

A:获得属性值(getAttribute)

  1. 163 
  2.  
  3. //js  
  4.  
  5. varkoko=document.getElementById("koko");  
  6.  
  7. varkokoHref=koko.getAttribute("href");  
  8.  

 注:getAttribute不能用document对象调用。

B:设置属性值(setAttribute)

setAttribute不但可以修改现有属性的值,而且可以添加新的属性,类似getAttribute,它不能通过document调用,只能通过元素节点来调用。需要传递两个参数:

obiect.setAttribute(attribute,value)

例子

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

#p#五:javascript与样式

A:style.style

Javascript Dom编程中中每一个元素节点都包含一个style.style,来改变此元素的呈现。

例:改变元素文本的颜色用style.Color

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

B:使用class改变样式

在css中,内嵌的样式表被看做是不好的习惯,那么***的改变元素呈现的方法就是使用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. 技术分享 如何获取Dom元素的X/Y坐标
  2. JQuery创建DOM元素方法解析
  3. JavaScript获取HTML DOM节点元素详解
  4. JavaScript和DOM轻松实现数据访问
  5. HTML DOM与XML DOM的区别与联系探究

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...