`

JavaScript dom操作一些例子

阅读更多
dom节点操作
克隆节点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>cloneNode demo</title>
<script type="text/javascript">
function clone()
{
	var p = document.body.getElementsByTagName('p')[0];
	var newNode = p.cloneNode(false);
	document.getElementById('containter').appendChild(newNode);
}
function cloneWithChildNodes()
{
	var p = document.body.getElementsByTagName('p')[0];
	var newNode = p.cloneNode(true);
	document.getElementById('containter').appendChild(newNode);
}
</script>
<style type="text/css">
p {
	line-height:20px;
	background-color:#ff0;
	height:20px;
	width:400px;
}
</style>
</head>

<body>
	<h1>cloneNode demo</h1>
    <div id="containter">
		<p>JavaScript cloneChild function demo</p>
    </div>
    <input type="button" value="clone node without child nodes" onclick="clone();" />
    <input type="button" value="clone node with child nodes" onclick="cloneWithChildNodes();" />
</body>
</html>


创建节点,增加节点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>create & add node demo</title>
<style type="text/css">
* {
	margin:0;
	padding:0;
}
html {
	background-color:#eee;
	height:100%;
}
body {
	padding:15px;
	font-size:11px;
	width:500px;
	background-color:#fff;
	height:100%;
	font-family:Tahoma;
	border-left:20px solid #ccc;
}
ul {
	list-style:none;
	border-top:1px solid #999;
	height:350px;
	overflow-x:auto;
	overflow-y:scroll;
}
span {
	font-weight:bold;
	font-size:12px;
}
li {
	border-bottom:1px dashed #666;
	line-height:20px;
}
form {
	margin-top:10px;
	border-top:1px solid #999;
}
label {
	display:block;
	line-height:20px;
	font-weight:bold;
	cursor:pointer;
	background-color:#999;
	color:#fff;
	margin:3px 0;
	padding-left:5px;
	width:100%;
}
#txtName , #txtContent {
	width:100%;
	font-size:11px;
}
#btnSubmit {
	display:block;
	margin-top:3px;
	border:1px solid #666;
	padding:2px 5px;
	width:100%;
}
</style>
<script type="text/javascript">
function submitMsg()
{
	var name = document.getElementById('txtName').value;		//取得name值
	var content = document.getElementById('txtContent').value;	//取得message值
	var span = document.createElement('span');					//创建span节点
	var nameText = document.createTextNode(name);				//创建文本节点,文本值为name值
	span.appendChild(nameText);									//将文本节点添加到span节点中
	var p = document.createElement('p');						//创建p节点
	var contentText = document.createTextNode(content);			//创建文本节点,文本值为message值
	p.appendChild(contentText);									//将文本节点添加到p节点中
	var li = document.createElement('li');						//创建li节点
	li.appendChild(span);										//将span节点添加到li节点中
	li.appendChild(p);											//将p节点添加到li节点中
	document.getElementById('msgList').appendChild(li);			//将li节点添加到msgList节点中
}
</script>
</head>

<body>
	<h1>Guest Book</h1>
    <ul id="msgList">
        <li>
        	<span>Robin Chen</span>
            <p>Welcome,My friends.</p>
        </li>
    </ul>
    <form name="fmMsg" id="fmMsg" action="?" method="post">
        <h2>Message</h2>
    	<label for="txtName">name</label>
        <input name="txtName" type="text" id="txtName" value="guest" onfocus="this.select();" />
        <label for="txtContent">Message</label>
        <textarea name="txtContent" rows="4" id="txtContent" onfocus="this.select();">something to say...</textarea>
        <input type="button" value="Click here to submit your message!" id="btnSubmit" onclick="submitMsg();" />
    </form>
</body>
</html>

在html文档中的某个节点前添加一个节点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>insertBefore demo</title>
<script type="text/javascript">
function addNode()
{
	var pos = parseInt(document.getElementById('txtPos').value) || 0;
	var li = document.createElement('li');
	var text = document.createTextNode('new node');
	li.appendChild(text);
	li.style.backgroundColor = '#ff0'; //新节点背景色为黄色
	var ul = document.getElementById('parent');
	var lis = ul.getElementsByTagName('li');
	if(pos >= lis.length)
	{
		alert('error index');
		return;
	}
	ul.insertBefore(li,lis[pos]); //在lis[pos]节点前插入新节点li
}
</script>
</head>

<body>
	<ul id="parent">
    	<li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
    </ul>
    <label for="txtPos">node position:</label>
    <input type="text" id="txtPos" />
    <input type="button" value="add" onclick="addNode();" />
</body>
</html>


删除子节点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>removeChild demo</title>
<style type="text/css">
* {
	margin:0;
	padding:0;
}
body {
	font-size:12px;
	font-family:Tahoma;
	padding-left:20px;
}
ul {
	list-style:none;
	border:1px solid #666;
	background-color:#eee;
	width:400px;
	padding:10px;
	margin:10px 0;
}
li {
	width:100%;
	border-bottom:1px dashed #666;
	padding:5px 0;
}
.btn {
	float:right;
}
</style>
<script type="text/javascript">
/*
 * 删除选中的节点
 */
function deleteSelectedItems()
{
	var cbs = document.getElementsByName('cb');
	var list = document.getElementById('list');
	var lis = list.getElementsByTagName('li');
	var deletetItems = [];							//需要删除的节点的集合
	for(var i = 0; i < cbs.length; i ++)
	{
		/* 
		 * 如果li中的checkbox被选中,则将该li节点加入到deleteItems数组中 
		 */
		if(cbs[i].checked)
		{
			deletetItems.push(lis[i]);				
		}
	}
	for(var i = 0; i < deletetItems.length; i ++)
	{
		list.removeChild(deletetItems[i]);			//删除节点
	}
}
/*
 * 在document的click事件中判断是否点击了li中的按钮,并删除li元素
 */
document.onclick = function(e)
{
	var evt = arguments[0] || event;
	var elm = evt.target || evt.srcElement;
	if(elm.type == 'button' && elm.className == 'btn')
	{
		var li = elm.parentNode;
		li.parentNode.removeChild(li);
	}
}
</script>
</head>

<body>
	<h1>removeChild demo</h1>
	<ul id="list">
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Wildfires May Bring Other Hardships</span>
        </li>
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Sentence in Teen Sex Case Ruled Illegal</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>What's the Biggest Shocker of the Week?</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Spears Custody Case Closed to Media</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Many States Facing Water Shortages</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Student's Death Tied to Staph 'Superbug'</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Astronauts Prepare to Open Station Room</span>
        </li>     
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Lawmaker's Remarks Offend the Dutch</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>Rice Looks to History for Peace Effort</span>
        </li>        
    	<li>
        	<input type="button" value="delete" class="btn" />
        	<input type="checkbox" name="cb" />
            <span>US to Order Diplomats to Serve in Iraq</span>
        </li>          
    </ul>
    <input type="button" value="delete selected items" onclick="deleteSelectedItems();" />
</body>
</html>




替代子节点

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>replaceChild demo</title>
<script type="text/javascript">
function replaceNode()
{        document.write("replaceNode");
	var pos = parseInt(document.getElementById('txtPos').value) || 0;
	var new= document.createElement('li');
	var text = document.createTextNode('new node');
	new.appendChild(text);
	new.style.backgroundColor = '#ff0';
	var ul = document.getElementById('parent');
	var lis = ul.getElementsByTagName('li');

	if(pos >= lis.length)
	{
		alert('error index');
		return;
	}
	ul.replaceChild(new,lis[pos]); //替换子节点
         alert("替换成功"); 
}
</script>
</head>

<body>
	<ul id="parent">
    	<li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
        <li>child node</li>
    </ul>
    <label for="txtPos">node position:</label>
    <input type="text" id="txtPos" />
    <input type="button" value="replace" onclick="replaceNode();" />
</body>
</html>



源码见附件
  • 大小: 44.1 KB
分享到:
评论

相关推荐

    javascript dom操作参考

    在JavaScript中,DOM操作主要包括以下几大方面: 1. **获取元素**:`document.getElementById()`,`document.querySelector()`,`document.querySelectorAll()`等方法可以用来根据ID、CSS选择器或匹配多个元素的...

    JavaScript DOM编程艺术 第2版

    - **性能优化**:分享一些关于提高JavaScript和DOM操作效率的小技巧,比如减少重绘和回流等。 5. **实例与案例研究** - **实战项目**:通过一系列具体的例子和小项目来加深对理论知识的理解,并锻炼实际开发能力...

    JavaScript DOM编程艺术 第2版.pdf 第二部分

    学习Javascript用《JavaScript DOM编程艺术》来入门最好不过了,老老实实看两遍,看完了你就会对JS有一个大概的了解,整本书都围绕着一个网页效果例子展开,你跟着老老实实敲一篇,敲完之后,你会发现这个效果不是常...

    JavaScript DOM 编程艺术

    学习《JavaScript DOM 编程艺术》不仅可以帮助开发者掌握JavaScript与DOM的基本操作,还能提升网页的交互性和用户体验。无论你是初学者还是有经验的开发者,这本书都将提供宝贵的指导,助你在Web开发领域更进一步。...

    JavaScript Dom编程艺术

    在本书中,作者首先详细讲解了DOM的基础概念,包括DOM是什么,它如何工作,以及如何通过JavaScript访问和操作DOM元素。DOM提供了一种标准的方式来表示和操作HTML或XML文档的结构,使得开发者可以通过脚本语言来改变...

    DOM解析XML文件例子

    在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...

    JavaScript+DOM编程艺术(PDF格式原版+源代码)

    DOM编程艺术这部分内容将详细介绍如何使用JavaScript操作DOM树,包括查找、创建、修改和删除节点,以及如何绑定和处理事件。 书中的源代码包含了一系列与书中实例对应的练习,这些练习可以帮助读者巩固所学知识,...

    javascript DOM高级程序设计 及 javascript 设计模式

    《JavaScript DOM高级程序设计》 首先教你搭建一个类似JQuery的额工具函数库,然后通过讲解几个实际中经常遇到的几个应用例子,会让初学者受益匪浅 《JavaScript设计模式》主要讲Javascript的设计模式,说实话,翻译...

    《JavaScript DOM 编程艺术》源代码

    DOM是HTML和XML文档的结构化表示,通过JavaScript,我们可以利用DOM来动态地操作网页内容,实现丰富的用户交互效果。这本书的核心在于帮助开发者理解和掌握如何有效地利用JavaScript操纵DOM,以实现网页的动态更新、...

    JavaScript DOM编程艺术原代码

    《JavaScript DOM编程艺术》是一本深入探讨如何使用JavaScript操作网页文档对象模型(DOM)的经典著作。这本书的第二版原代码提供了丰富的示例和实践练习,帮助读者深化对JavaScript与DOM交互的理解。DOM是Web开发中...

    javascript100个小例子

    "javascript100个小例子"这个资源集合了100个JavaScript编程的小实例,涵盖了各种操作和效果,非常适合初学者进行实践学习,同时也为项目开发提供了现成的代码片段。 在JavaScript的学习中,了解和掌握以下几个关键...

    JavaScript DOM Source

    这个压缩包"JavaScript DOM Source"可能包含这些知识点的实例代码,学习者可以通过实践这些例子,加深对DOM的理解,提升JavaScript开发技能。无论你是初学者还是经验丰富的开发者,熟悉DOM都是必不可少的。

    JavaScript DOM编程艺术 第2版 官方源代码

    JavaScript DOM编程艺术是一本深入探讨如何使用JavaScript与Document Object Model(DOM)进行交互的经典书籍。DOM是HTML和XML文档的结构化表示,它允许我们通过编程方式操纵网页内容。第二版通常会涵盖更多现代Web...

    JavaScript DOM编程艺术 第2版.pdf 第一部分

    学习Javascript用《JavaScript DOM编程艺术》来入门最好不过了,老老实实看两遍,看完了你就会对JS有一个大概的了解,整本书都围绕着一个网页效果例子展开,你跟着老老实实敲一篇,敲完之后,你会发现这个效果不是常...

    经典的JavaScript小例子

    5. **DOM操作**:通过DOM,JavaScript可以访问和修改HTML元素。这可能包括创建新元素、查找元素、改变元素属性或内容,甚至移除元素。 6. **数组方法**:JavaScript的数组提供了丰富的内置方法,如push、pop、shift...

    javascript 操作 dom 的常用方法

    以下是一些常见的JavaScript DOM操作方法,这些方法在ASP.NET环境下同样适用: 1. `appendChild` 方法:这个方法用于在指定元素的子节点列表末尾添加一个新的子节点。在示例中,`fnAppend`函数创建了一个新的`&lt;LI&gt;`...

    javascript入门实用例子

    7. **DOM操作**:Document Object Model (DOM)是HTML和XML文档的结构表示,JavaScript可以用来遍历、修改或添加DOM元素,从而改变网页内容。 8. **AJAX**:Asynchronous JavaScript and XML,尽管现在不常用XML,但...

    JavaScript DOM 编程艺术 Put It All Together

    在这个"Put It All Together"的例子中,我们将深入理解如何综合运用JavaScript与DOM的各种技术,实现动态交互的网页效果。 首先,DOM是W3C制定的一种标准,它将网页视为一个可编程的对象树,每个HTML元素都是树中的...

    学习DOM操作第一个小例子

    点击隔行换色 点击元素,背景色要发生改变 之前的元素恢复默认的背景色

Global site tag (gtag.js) - Google Analytics