`
huobengluantiao8
  • 浏览: 1028535 次
文章分类
社区版块
存档分类
最新评论

javascript学习笔记—DOM常用API、属性、方法、函数

 
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>DOM常用属性和方法</TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  
 </HEAD>

 <BODY id="bb">
  	<table id="tab" border=1>
		<thead id="Thead">
		<tr>
			<th onClick="sortTable('tab',0,'int')" style="cursor:pointer">ID</th>
			<th onClick="sortTable('tab',1)" style="cursor:pointer">姓名</th>
			<th onClick="sortTable('tab',2,'int')" style="cursor:pointer">年龄</th>
			<th onClick="sortTable('tab',3,'date')" style="cursor:pointer">出生日期</th>
		</tr>
		</thead>
		<tbody id="Tbody">
		<tr id="tr1">
			<td width=100 id="ID">1</td>
			<td id="name" width="100">张三</td>
			<td id="age" width="100">25</td>
			<td id="date" width="100">1970-9-9</td>
		</tr>
		<tr id="tr2">
			<td width=100 id="ID">3</td>
			<td id="name" width="100">李四</td>
			<td id="age" width="100">18</td>
			<td id="date" width="100">1980-9-9</td>
		</tr>
		<tr id="tr3">
			<td width=100 id="ID">2</td>
			<td id="name" width="100">王五</td>
			<td id="age" width="100">19</td>
			<td id="date" width="100">1990-9-9</td>
		</tr>
		<tr id="tr4">
			<td width=100 id="ID">6</td>
			<td id="name" width="100">续写</td>
			<td id="age" width="100">22</td>
			<td id="date" width="100">1965-9-9</td>
		</tr>
		<tr id="trr" name="rr">
			<td width=100 id="ID1">5</td>
			<td id="name" width="100">经典</td>
			<td id="age" width="100">30</td>
			<td id="date" width="100">1950-9-9</td>
		</tr>
		</tbody>
	</table>
	<div id="textDiv">测试</div>
	<div id="txt"></div>
	<div id="removeDiv">removeDiv</div>
	<div id="txtDiv">aaa</div>
	<form name="form1"></form>
	<form name="form2"></form>
	<a href="#" name="a1">超链接一</a>
	<a href="#" name="a2">超链接二</a>

 </BODY>
 <script type="text/javascript" > 
		//返回指定id的元素节点
		function $(id){
			return id ? document.getElementById(id) : id ;
		}
 /* */
		var oHtml = document.documentElement; //得到<html>元素 
		alert("节点名称:"+oHtml.nodeName);
		alert("节点类型:"+oHtml.nodeType);

		//获取<head> 元素的几种方法,效果一样
		var oHead = document.head;
		oHead = oHtml.firstChild;
		oHead = oHtml.childNodes.item(0);
		oHead = oHtml.childNodes[0];
		oHead = oHtml.children.item(0);
		oHead = oHtml.children[0]; 
		
		//获取 <body>元素的几种方法,效果一样
		var oBody = document.body;
		oBody = oHtml.lastChild;
		oBody = oHtml.childNodes.item(1);
		oBody = oHtml.childNodes[1];
		oBody = oHtml.children.item(1);
		oBody = oHtml.children[1];

		alert(oHead.parentNode == oHtml); //head节点的父节点是html节点,返回 true   
		alert(oBody.parentNode == oHtml); //body节点的父节点是html节点,返回 true   
		alert(oBody.previousSibling == oHead); //body节点的上一个兄弟节点是head节点 ,返回 true  
		alert(oHead.nextSibling == oBody);//head节点的下一个兄弟节点是body节点,返回 true  
		alert(oHead.ownerDocument == document); //判断head节点的根元素是否指向Document,返回 true 
		alert(oBody.ownerDocument == document); //判断body节点的根元素是否指向Document,返回 true 

		var tdArray = document.getElementsByTagName("td"); //得到一个td标签的集合
		for(var i=0;i<tdArray.length;i++){ //遍历集合,输出所有标签的内容
			alert(tdArray[i].innerHTML); 
		}
 
		var node = $("textDiv"); 
		alert(node.innerHTML);
		

		//创建一个div元素节点
		var div = document.createElement("div");
		alert(div.nodeType); 
		//创建一个文本节点
		var text = document.createTextNode("创建的文本节点");
		alert(text.nodeType);
		var txtNode = $("txt");
		txtNode.appendChild(text);  //将创建的文本节点添加到指定的元素内
		alert(txtNode.innerHTML); //输出文本节点的内容
		
		//为元素设置属性值
		//div.id = "myID"; 
		div.setAttribute("id","myID"); //效果同上,为创建的div设置id属性
		alert("div的属性id的值是:"+div.getAttribute("id")); //获取div的属性id的值,如果属性不存在,返回null
		
		//设置div中的内容
		div.innerHTML = "<p>续写经典</p>";

		//将创建的div加入到body中
		var body = document.getElementsByTagName("body")[0];
		body.appendChild(div);

		//通过id查找元素
		div = $("myID");
		alert(div.innerHTML); //访问id为“myID”的元素的内容 

		//获得表格的集合
		var arr = new Array();
		arr = document.getElementById("tab").rows; //获得id为“tab”的表格的集合
		alert("表格的行数为:"+arr.length);
		//删除表格中指定的一行数据
		document.getElementById("tab").deleteRow(arr.length-1);
 
		var han = {
			//获取子节点的集合(ie,ff通用)
			getChildNodes:function(node){
				var arr = [];
				var nodes = node.childNodes;
				for(var i in nodes){
					if(nodes[i].nodeType == 1){ //查找元素节点
						arr.push(nodes[i]);
					}
				}
				return arr;
			},
			//获取第一个元素子节点(ie,ff通用)
			getFirstElementChild : function(node){
				return node.firstElementChild ? node.firstElementChild : node.firstChild ;
			},
			//获取最后一个元素子节点(ie,ff通用)
			getLastElementChild : function(node){
				return node.lastElementChild ? node.lastElementChild : node.lastChild ;
			},
			//获取上一个相邻节点(ie,ff通用)
			getPreviousSibling : function(node){
				//找到上一个节点就返回节点,没找到就返回null
				do{
					node = node.previousSibling;
				}while(node && node.nodeType!=1)
				return node;
			},
			//获取下一个相邻节点 (ie,ff通用)
			getNextSibling : function(node){
				//找到下一个节点就返回节点,没找到就返回null
				do{
					node = node.nextSibling;
				}while(node && node.nodeType!=1)
				return node;
			},
			//将元素插入到指定的node节点后面
			insertAfter : function(newNode,targetNode){
				if(newNode && targetNode){
					var parent = targetNode.parentNode;
					var nextNode = this.getNextSibling(targetNode);
					if(nextNode && parent){
						parent.insertBefore(newNode,nextNode);
					}else{
						parent.appendChild(newNode);
					}
				}
			}
		};
		//创建一个div元素节点
		var newDiv = document.createElement("div");
		newDiv.innerHTML = "一二三四";
		var div1 = $("textDiv");
		//将元素插入到指定节点后面
		han.insertAfter(newDiv,div1); 

		//创建一个div元素节点
		var newDiv2 = document.createElement("div");
		newDiv2.innerHTML = "五六七八";
		var div2 = $("textDiv");
		//将元素插入到指定节点前面
		div2.parentNode.insertBefore(newDiv2,div2);

		
		//获取子节点的个数(ie,ff通用)
		var a2 = han.getChildNodes(Tbody);
		alert("body子节点长度:"+a2.length);
		
		//获取首个子节点的内容 (ie,ff通用)
		var firstNode = han.getFirstElementChild(tab).innerHTML;
		alert("tab的首个子节点内容是:"+firstNode);

		//获取最后一个子节点的内容 (ie,ff通用)
		var lastNode = han.getLastElementChild(tab).innerHTML;
		alert("tab的最后一个子节点内容是:"+lastNode);
		
		alert("tab的父节点名字是:"+tab.parentNode.nodeName); //获取父节点名字
		alert("tab的父节点类型是:"+tab.parentNode.nodeType); //获取父节点类型
		alert("tab的父节点值是:"+tab.parentNode.nodeValue); //获取父节点值
		
		var node = document.getElementById("Tbody");
		var myNextSibling;
		if(han.getNextSibling(node)){
			myNextSibling = han.getNextSibling(node);
			alert("Tbody的下一个相邻的节点名字是:"+myNextSibling.nodeName);
		}else{
			alert("已经是最后一个节点");
		}
		
		var node1 = document.getElementById("Thead");
		var myPreviousSibling;
		if(han.getPreviousSibling(node1)){
			myPreviousSibling = han.getPreviousSibling(node1);
			alert("Thead的上一个相邻的节点名字是:"+myPreviousSibling.nodeName);
		}else{
			alert("已经是第一个节点");
		} 

		//克隆函数,参数为true时:克隆并包括所有子对象;参数为false时:克隆但不包括所有子对象
		var cloneNode = textDiv.cloneNode(true);
		txtDiv.appendChild(cloneNode);

		//检测是否包含有网页元素( HTML Elements )或 TextNodes 对象。返回boolean类型的值
		alert(tr3.hasChildNodes());

		//删除一个子节点,所有子对象将被一起删除
		var remove = bb.removeChild(removeDiv);

		//替换一个子对象,被替换时,所有与之相关的属性内容都将被移除
		var newDIV = document.createElement("div");
		newDIV.innerHTML = "一生经典";
		//var replace =  bb.replaceChild(newDIV,$("textDiv")); //方法一
		var replace = $("textDiv").replaceNode(newDIV);  //方法二,两种效果一样

		//forms:当前文档中的所有表单集合
		alert("<form>表单的个数:"+document.forms.length); //获取集合的长度
		for(var i=0;i<document.forms.length;i++){	//遍历集合,输出每一个元素
			alert(document.forms[i].name);			
		}
		//links:当前文档中所有超链接元素的集合
		alert("<a>元素的个数:"+document.links.length); //获取集合的长度
		for(var i=0;i<document.links.length;i++){   //遍历集合,输出每一个元素
			alert(document.links[i]);
		}
		
  </script>
</HTML>

分享到:
评论

相关推荐

    JavaScript学习笔记之DOM操作实例分析

    主要介绍了JavaScript学习笔记之DOM操作,结合实例形式分析了javascript针对dom元素的获取、设置相关操作常用函数使用技巧,需要的朋友可以参考下

    javascript学习笔记

    js 常用函数,html标签对象操作。dom对象结构理解

    Javascript学习笔记.docx

    javascript 1 基本语法 1 动态函数 2 封装一个数组类 2 函数使用时注意事项 2 with语句 4 for,in 4 DOM 5 window 6 table 9 input 16 select 17 form 19 Ajax 22 接收文本数据 22 接收xml数据 23 ...

    JavaScript-学习笔记.docx

    自己学习笔记。视频:腾讯课堂:渡一教育 内容大纲: 预编译: 函数 闭包问题 对象 原型、原型链、call、apply 继承模式 对象克隆 数组 类数组 数组去重 自定义type方法(类似于typeof) try-catch es5.0严格模式 ...

    JavaScript 学习笔记(十三)Dom创建表格

    Dom基础—创建表格 利用js来动态创建表格有两种格式,appendChild()和insertRow、insertCell()。但第一种有可能在IE上有问题,所以推荐使用第二种。 1、insertRow(index):index从0开始 这个函数将新行添加到index的...

    Javascript学习笔记4 Eval函数

    eval的作用其实很简单,就是把一段字符串传递给JS解释器,由...我想大家最基本的使用eval函数都是应该在DOM中,例如我们有div1,div2,div3,那么在document.getElementByID时我们的ID没有办法去得到,那么最简单的办法就

    js学习笔记大全

    * 获取元素,或者在DOM加载完成时执行某函数 * @param arg 此参数为字符串时,认为是 c$.getElement 的缩写,用来获取元素。用法参考 c$.getElement * 如果 arg 是 function 则认为是 c$.ready 的缩写,在dom加载完成...

    JavaScript学习笔记之内置对象

     所有 JavaScript 全局对象、函数以及变量均自动成为window对象的成员。  窗口对象的属性和方法格式:  [window.]属性  [window.]方法(参数)  甚至 HTML DOM 的 document 也是 window 对象的属性之一: window....

    javascript 学习笔记(一)DOM基本操作

    html部分代码: 当点击show按钮时,触发showValue函数,将input value的值动态添加到id=”text”的元素节点中! 代码如下: &lt;p&gt; &lt;...&lt;/span&gt; &lt;/p&gt; ”text”&gt;&lt;/p&gt; javascript 部分代码: 页面加载时,使inpu

    JavaScript函数、闭包、原型、面向对象学习笔记

    给大家分享了一篇关于JavaScript函数、闭包、原型、面向对象的知识点学习笔记内容,有兴趣的朋友参考下。

    Javascript学习笔记之 函数篇(二) : this 的工作机制

    全局作用域下 this; 当在全局作用域中使用 this,它指向全局对象。 这里详细介绍下全局对象: ...例如,在 DOM 中,全局对象的 window 属性就可以引用全局对象自身。 所以在 console 内输入 window 和 this.w

    学习Javascript时个人做的笔记。

    本文档为本人学习js时候做的笔记,只需要仅仅两个币就可以了,其中内容包括简单的数据类型,创建对象,数组,包装类BOM和DOM,其中重点的DOM包括基本的事件对象操作,轮盘绑定定时器,还有附加的一点点js高级部分...

    javascript学习笔记(二)数组和对象部分

    javascript对象部分 一:基础部分 1.JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined。 2.Jscript 支持四种类型的对象:内部对象、生成的对象、宿主给出的对象(所有BOM和...对象拥有属性和方法。 Ja

    Javascript入门学习资料收集整理篇

    Javascript入门学习第一篇 js基础Javascript入门学习第二篇 js类型...js dom实例操作Javascript入门学习第八篇 js dom节点属性说明Javascript入门学习第九篇 Javascript DOM 总结jQuery基础教程笔记适合js新手

    LotusDomino学习笔记.doc

    6. 删除文档的方法 7 7. $$return 域的使用 8 8. 将表单设计为视图或导航器模板 9 9. 为 Web 定制“表单已处理”确认信息 10 10. 定制出错信息 11 11. $$HtmlHead几种常用的技巧 11 12. Domino Designer 模板表 12 ...

    Lotus Domino WEB详细 学习笔记

    6. 删除文档的方法 7 7. $$return 域的使用 8 8. 将表单设计为视图或导航器模板 9 9. 为 Web 定制“表单已处理”确认信息 10 10. 定制出错信息 11 11. $$HtmlHead几种常用的技巧 11 12. Domino ...

    JavaScript高级程序设计 XML、Ajax 学习笔记

    ①在DOM2级在document.implementation中引入了createDocument()方法(IE6~8不支持)。 可以创建一个空白XML。 var xmldom = document.implemention.createDocument(namespaceUri,root,docype); ②要创建一个新的文档...

    LotusDomino学习笔记(400页涵盖代理和公式使用)

    6. 删除文档的方法 7 7. $$return 域的使用 8 8. 将表单设计为视图或导航器模板 9 9. 为 Web 定制“表单已处理”确认信息 10 10. 定制出错信息 11 11. $$HtmlHead几种常用的技巧 11 12. Domino Designer 模板表 12 ...

    Java学习笔记-个人整理的

    {8.1}线程的常用属性与方法}{121}{section.8.1} {8.2}后台线程}{123}{section.8.2} {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section....

    前端开发笔记.docx

    在前端开发的学习和实践过程中,以下是一些重要的笔记内容: HTML(超文本标记语言): HTML是构建Web页面的基础,它描述了页面的结构和内容。笔记应包括常见的HTML标签、元素嵌套规则以及语义化的重要性。 CSS...

Global site tag (gtag.js) - Google Analytics