获取元素节点(DOM基础 )

一、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作为对页面的操作还有更多的内容需要学习,而且只有在应用中才能更好的理解。现在只是基本的知识总结,以后随着认识的加深在做相应的总结。

时间: 2024-10-05 05:02:03

获取元素节点(DOM基础 )的相关文章

轻松学习JavaScript二十一:DOM编程学习之获取元素节点的子节点和属性节点

我们这里所说的获取元素节点的所有子节点包含元素子节点和文本节点两种.还是拿上一篇博文的代码实例进行 分析: <span style="font-size:18px;"><span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

JavaScript之怎样获取元素节点

JavaScript获取元素节点一共有三种方法,分别是通过元素ID.通过标签名字和通过类名字来获取: 1.通过元素ID属性的ID值来获得元素对象-getElementById() DOM提供了一个名为getElementById()的方法,这个方法将返回一个与括号里有着一样id值的元素节点对应的对象.他是document对象特有的函数,这个函数的参数只有一个,只能是你想要获得的元素的ID值,这个值必须放在单引号或者双引号里面. 注意:JavaScript语言区分字母大小写,所以在写getElem

JS获取元素节点的子节点

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <titl

根据ClassName获取元素节点

功能描述: 通过ClassName获取元素节点,并解决兼容性问题 实现效果: 编码思路: 利用getElementsByTagName选出所有元素,再根据ClassName条件进行筛选 代码示例:

获取元素节点

1.大纲 关于获取元素节点,主要有三种方式. getElementById() getElementsByTagName() getElementsByName() 2.第一种方式程序 在编写 HTML 文档时, 需确保 id 属性值是唯一的. 该方法为 document 对象的方法. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>I

js通用方法获取元素,节点父子关系查找

/* *通用方式来获取元素 * 1.通过id来获取元素document.getElementById('属性名') * 2.通过便签名来获取元素document.getElementsByTagName('属性名');得到的是一个数组 * 3.通过class属性来获取元素有兼容性问题document.getElementsByClassName('class属性名');得到是一个数组 * 4.通过name属性来获取元素存在兼容性问题document.getElementsByName('name

JavaScript DOM编程 学习笔记-获取元素节点

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> window.onload = function() { //在编写html文档时需要确定id属性值是唯一的 //该方法为doc

常用数组、字符串方法总结&amp;获取元素、DOM操作

字符串的方法.返回值.是否改变原字符串:1 charAt() 方法可返回指定位置的字符. 不改变原始字符串 JavaScript并没有一种有别于字符串类型的字符数据类型,返回的字符是长度为 1 的字符串: 注释:字符串中第一个字符的下标是 0.如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串. 2 concat() 方法用于连接两个或多个字符串并返回连接后的字符串 不改变原始字符串 语法:stringObject.concat(stringX,str

javascript中获取元素节点的文本

<div id="test"> <strong>i'm strong</strong> </div> 1.elementNode.innerHTML 返回的值是<strong>i'm strong</strong> 2.elementNode.innerText 返回的值是i'm strong 3.elementNode.textContent 返回的值是i'm strong 4.elementNode.child