首页 > 其他 > 详细

获取元素节点(DOM基础 )

时间:2015-02-28 00:16:25      阅读:354      评论:0      收藏:0      [点我收藏+]

一、DOM
      简介:种独立于平台和语言的方式访问和修改(添加、移动、改变或移除的方法和属性)一个文档(主要是网页)的内容和结构。是表示和处理一个HTML或XML文档的常用方法。

      节点的定义:D(Web网页文档)O(document对象)M(网页文档的树形结构)M中树形结构可以理解为由节点组成。把每个标签看作一个节点。

      节点的分类:以一个完成的标签为例<div id ="box">测试Div</div>
            元素节点:是标签<div></div>
            文本节点:是标签内的纯文本,测试Div
            属性节点:   是标签的属性,id="box"
                   

二、获取节点:
       既然要对页面进行操作首先获取界面的内容,主要是通过获取节点来对页面内容来进行操作。下面提供部分界面html,后面的js代码主要对给代码进行操作。

界面html:

<body>
     <span>开始</span>
     <div name="test"  id = "box"   aaa ="bbb"  >
        <p>测试Div1</p>
        <p>测试Div2</p>
        <p>测试Div3</p>				 
     </div>
     <div id ="pox">测试<em>倾斜</em>结尾</div>
     <span>结束</span>
</body >

1、元素节点
(1)获取元素节点

    
   1)getElementById() :通过特定的ID来获取元素节点。

        js代码:  

    window.onload=function(){
           var box = document.getElementById('box');
           alert(box);      //返回值HTMLDivElement表示Div的节点对象
           lert(box.tagName);   //返回元素节点对象的标签名
     } ;
         2)getElementByTagNamename()  :通过元素节点名获取相同元素节点名的集合
          js代码:   
      window.onload=function(){
	    var p = document.getElementsByTagName('p');
		alert(p);     //返回一个数组集合,HTMLCollection
		alert(p.length);       //返回p数组的数量
		alert(p[0]);       //返回p的节点对象
		alert(p.item(0));  //同上
		alert(p[0].tagName);      //LI
		alert(p[0].innerHTML);  //返回节点的文本内容:测试Div1
          var all= document.document.getElementsByTagName('*');
          alert(all.length)  //网页中所有节点的数量
 } 
      3)getElementByName()   :通过name属性的值获取元素节点的集合。
      js代码:   
<pre name="code" class="javascript">  window.onload=function(){
	  var box = document.getElementsByName('test')[0];
	  alert(box);  //返回节点对象
     } 

      说明:name属性一般出现在表单中,在其他节点中添加name属性会认为为不合法属性,Firefox和Google可以获取HTML中不合法的name,低版本的IE获取不到。

- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - -

(2)通过节点属性得到元素

    1)node属性:来获取节点的名称、类型、值。

技术分享   js代码:

     window.onload=function(){  节点属性
	  var box = document.getElementById('box');
	  alert(box.nodeName);   //显示DIV     元素名
	  alert(box.nodeType);    //显示1          节点类型
	  alert(box.nodeValue);   //显示null       原因元素节点本身没有内容	 
 };
注意:node只能获取当前节点的东西,在上面的js代码中node本身把节点指针放在元素<div></div>上,所以本身没有value值,

     2)层次节点属性:层级节点可以分为父子节点和兄弟节点,通过当前节点可以获取其他层次的节点。
     2.1)子节点childNodes、第一个字节点firstChilds、最后一个子节点lastChilds。
     js代码:

 window.onload=function(){ 子节点 
         var pox = document.getElementById('pox');
         alert(pox.childNodes.length) //子节点数量 
         alert(pox.childNodes[0].nodeValue); // 第一个子节点的内容 
         alert(pox.firstChild.nodeValue);  // 第一个子节点的内容 
         alert(pox.lastChild.nodeValue); // 最后一个节点的内容 
 }; 

     2.2)父节点parentChild、兄弟节点previousSibing,nextSibing。
     js代码:

window.onload=function(){     父节点,上下节点
	 var pox = document.getElementById('pox');
	 alert(pox.parentNode);    //pox节点的父节点body节点
	 alert(pox.firstChild.nextSibling);    //pox节点的子节点中第一个节点的下一个节点
	 alert(pox.lastChild.previousSibling);   //pox节点的子节点中最后一个节点的上一个节点
	 alert(pox.lastChild.previousSibling.nodeName)		
};

- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - 

2、属性节点

     1)直接.出HTML属性的属性值。    
      js代码:

 window.onload=function(){
        var box = document.getElementById('box');
	alert(box.id);   //返回值为box		 
	alert(box.aaa);   // 不显示定义的属性值。返回undefined
	alert(box.class); //返回undefined  class为js的关键字
	alert(box.className);  //返回class属性的值cd
}  
 

     2)getAttribute()获取某个属性的属性值。
     js代码:

   window.onload=function(){
	       var box = document.getElementById('box');
	       alert(box.getAttribute('aaa'))  //这种方式可以获得自定义属性的属性值。
	       alert(box.getAttribute('className')) //返回为null
	       alert(box.getAttribute('class') )  //返回class属性的属性值
} 

     3)通过节点属行获得
      js代码:

   window.onload=function(){    属性
	 var pox = document.getElementById('pox');
	 alert(box.attributes);   //集合数组,保存元素节点的属性列表
	 alert(pox.attributes.length);     //该节点的属性的个数
	 alert(pox.attributes[0]);      //Attr  ,属性节点
	 alert(pox.attributes[0].nodeName);	//第一个属性的属性名
          //遍历属性集合读取属性的时候,是从后向前进行的。					
 };

     4)setAttribute()设置属性
      js代码:

   window.onload=function(){
	var box = document.getElementById('box');
    alert(box.setAttribute('title','标题'))  //添加title属性和值
    alert(box.setAttribute('style','color:red')) //添加style属性和值
}  

     5)removeAttribute()移除属性
      js代码:
   window.onload=function(){
        var box = document.getElementById('box');
        alert(box.removeAttribute('title'))  //移除title属性
}  

- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - -

3、内容节点
     1)innerHTML获取当前元素节点的文本内容
      js代码:

 window.onload=function(){
         var box = document.getElementById('box');
	         alert(box.innerHTML);   //显示当前元素节点中的文本内容(包括HTML)
		
	 //var box = document.getElementById('box');
	 //box.innerHTML='玩转<strong>JS</strong>'; //赋值,可以解析里面的HTML。
}  
    2)文本节点nodeVlaue和innerhTML的区别
   window.onload=function(){   
	       var pox = document.getElementById('pox');
	       pox.childNodes[0].nodeValue='测试<strong>Pox</strong>';  //测试<strong>Pox</strong>倾斜结尾
               //pox.innerHTML='测试<strong>Pox</strong  ;  测试Pox(Pox大写)
 };

注意:区别1:前者把赋值的文本中html解析为特殊字符,后者当做html来显示。

           区别2:前者是得到文本节点来显示文本,后者是通过元素节点(.)点出该节点的文本内容。


三、总结
       主要讲解了下Dom基础中如何获得三种的节点,然后通过三种节点来进行基本的操作,Dom作为对页面的操作还有更多的内容需要学习,而且只有在应用中才能更好的理解。现在只是基本的知识总结,以后随着认识的加深在做相应的总结。


获取元素节点(DOM基础 )

原文:http://blog.csdn.net/u010928364/article/details/43935875

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!