`

javascript DOM(四)----节点替换

 
阅读更多

节点的替换:

1). replaceChild(): 把一个给定父元素里的一个子节点替换为另外一个子节点

var reference = element.replaceChild(newChild,oldChild);

返回值是一个指向已被替换的那个子节点的引用指针

2). 该节点除了替换功能以外还有移动的功能.  

3). 该方法只能完成单向替换, 若需要使用双向替换, 需要自定义函数:

/**

* 互换 aNode 和 bNode

* @param {Object} aNode

* @param {Object} bNode

*/

function replaceEach(aNode, bNode){

if(aNode == bNode){

return;

}

var aParentNode = aNode.parentNode;

//若 aNode 有父节点

if(aParentNode){

var bParentNode = bNode.parentNode;

//若 bNode 有父节点

if(bParentNode){

var tempNode = aNode.cloneNode(true);

bParentNode.replaceChild(tempNode, bNode);

aParentNode.replaceChild(bNode, aNode);

}

}

 

}   

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<script type="text/javascript">
			
			window.onload = function(){
				//1. 把 "东京" 节点替换为 "平壤"
				var pr = document.createElement("li");
				pr.appendChild(document.createTextNode("平壤"));
				
				document.getElementById("city").replaceChild(pr, document.getElementById("dj"));
				
				//2. 实现 #bj 和 #rl 之间的互换, 需要使用 cloneNode() 方法
				var bj = document.getElementById("bj");
				var rl = document.getElementById("rl");
//				
//				var city = document.getElementById("city");
//				var game = document.getElementById("game");
//				
//				city.replaceChild(rl.cloneNode(true), bj);
//				game.replaceChild(bj, rl);
				replaceEach(rl, bj);
			};
			
			/**
			 * 互换节点
			 * @param {Object} aNode
			 * @param {Object} bNode
			 */
			function replaceEach(aNode, bNode){
				var aParentNode = aNode.parentNode;
				var bParentNode = bNode.parentNode;
				
				//若 aNode 和 bNode 都存在父节点
				if(aParentNode && bParentNode){
					aParentNode.replaceChild(bNode.cloneNode(true), aNode);
					bParentNode.replaceChild(aNode, bNode);
				}
			}
						
		</script>
		
	</head>
	<body>
		<p>你喜欢哪个城市?</p>
		<ul id="city">
			<li id="bj" name="BeiJing">北京</li>
			<li>上海</li>
			<li id="dj">东京</li>
			<li>首尔</li>
		</ul>
		
		<br><br>
		<p>你喜欢哪款单机游戏?</p>
		<ul id="game">
			<li id="rl">红警</li>
			<li>实况</li>
			<li>极品飞车</li>
			<li>魔兽</li>
		</ul>
		
		<br><br>
		gender: 
			<input type="radio" name="gender" value="male"/>Male
			<input type="radio" name="gender" value="female"/>Female
	</body>
</html>	

 

 

 

 

0
2
分享到:
评论

相关推荐

    jsdom-jscore:jsdom 的一个分支,旨在用于 iOS 上的 JavaScriptCore,特别是 react-native

    jsdom-jscore 精简版以在 JavaScriptCore 上运行,将节点标准库依赖项替换为其他选项,通常基于浏览器。它有什么用? 你需要在你的 react-native iOS 应用程序中从 jsdom(DOM、解析等)中获取一些东西——例如,...

    JavaScript王者归来part.1 总数2

     12.5 访问和操纵DOM节点   12.5.1 打开每一个盒子--遍历节点   12.5.2 弄清层级关系--父子与兄弟   12.5.3 如何搜索特定节点   12.5.4 克隆节点--一个使用cloneNode()复制表格的例子   12.5.5 移动节点...

    JS实现添加,替换,删除节点元素的方法

    主要介绍了JS实现添加,替换,删除节点元素的方法,实例分析了javascript针对节点元素的替换、删除及常用的几种添加技巧,需要的朋友可以参考下

    dom-collection:DOM元素子节点的基于索引的集合操作方法

    DOM 元素子节点的基于索引的集合操作方法。 应用程序接口 insertAt(元素,索引,父) 在特定索引处插入 DOM 元素。 moveAt(元素,索引,父) 将 DOM 元素移动到特定索引。 replaceAt(元素,索引,父) 替换...

    JavaScript节点及列表操作实例小结

    本文实例总结了JavaScript节点及列表操作的方法。分享给大家供大家参考。具体如下: (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建...

    JavaScript笔记

    |--x.toFixed(num):可把Number四舍五入为指定小数位数(num:0-20)的数字 |--x.toString():用于把一个 Number 对象转换为一个字符串,并返回结果 19.正则表达式对象:(专门用于查找和验证) reg.test(‘要验证的完整...

    JavaScript详解(第2版)

     15.2 理解DOM节点   15.3 节点   15.3.1 父节点和子节点   15.3.2 兄弟节点   15.3.3 nodeName和nodeType属性   15.3.4 空白bug   15.4 遍历DOM   15.5 DOM查看器   15.6 查询DOM的快捷...

    morphdom:快速轻量级的DOM diffingpatching(无需虚拟DOM)

    形态 轻量级模块,用于变形现有DOM节点树以匹配目标DOM节点树。 它快速且可与真实DOM一起使用-无需虚拟DOM! 创建此模块是为了解决响应于UI组件或页面被重新呈现而更新DOM的问题。 更新DOM的一种方法是简单地抛弃...

    源文件程序天下JAVASCRIPT实例自学手册

    5.5.4 删除和替换节点 5.5.5 文本节点操作 5.6 对象的事件处理程序 5.7 浏览器兼容性策略 5.8 本章小结 第6章 String、Math、Array等数据对象 6.1 String对象 6.1.1 如何使用String对象方法操作字符串 6.1.2 获取...

    JavaScript基础教程第8版

    《JavaScript基础教程(第8版)》循序渐进地讲述了JavaScript及相关的CSS、DOM、Ajax、jQuery等技术。书中从JavaScript语言基础开始,分别讨论了图像、框架、浏览器窗口、表单、正则表达式、用户事件和cookie,并在上...

    Javascript入门学习第八篇 js dom节点属性说明第1/2页

    上2篇文章我们讲了 用dom方式 创建节点,复制节点,插入节点, 删除节点,替换节点,查找节点,获取属性等。。。

    JavaScript基础和实例代码

    5.5.4 删除和替换节点 5.5.5 文本节点操作 5.6 对象的事件处理程序 5.7 浏览器兼容性策略 5.8 本章小结 第6章 String、Math、Array等数据对象 6.1 String对象 6.1.1 如何使用String对象方法操作字符串 6.1.2 获取...

    mock-local-storage:模拟lodcalStorage用于无头单元测试

    安装 npm install mock-local-storage --save-dev用法摩卡咖啡Mocha中的Require,它将替换global对象和window对象上的localStorage和sessionStorage : mocha --require mock-local-storage如果您使用的是jsdom-...

    JS中DOM元素的操作等基础知识笔记

    删除5.DOM节点类型(元素和文本)6.DOM属性节点7.DOM高级操作 1. DOM的概念和作用  DOM 是 JavaScript操作网页的api接口,全称为“文档对象模型”(Document Object Model)。它的作用是将网页转为一个 JavaScript...

    为ion-select添加图片

    1.ionic中的ion-select标签添加图片 ...还会学到javaScript的一些知识(如:获取Dom节点、获取html元素、自定义html元素) 4.内附有详细的代码介绍以及各种注意细节,可供各位喜欢研究ionic的学者学习参考

    Chrome-Text-Customizer:使用文本替换策略自定义您的互联网

    替换:字符串或接收参数的函数(节点,匹配),其中“节点”是其中存在匹配的 DOM 节点,“匹配”结果数组(由 RegExp.prototype.exec&#40;&#41; 返回) 因此,您可以简单地查找/替换字符串(例如,'keyboard' -&gt; '...

    锋利的jQuery_高清_书签.part2

    3.2.6 替换节点 3.2.7 包裹节点 3.2.8 属性操作 3.2.9 样式操作 3.2.10 设置和获取HTML、文本和值 3.2.11 遍历节点 3.2.12 CSS—DOM操作 3.3 案例研究——某网站的超链接和图片提示效果 3.4 小结 第4章 jQuery中的...

    ng-template:[[已弃用]受AngularJS启发的轻量级基于DOM的模板引擎

    ngTemplate 1.0 ngTemplate是一个轻量级的基于DOM的模板引擎,其灵感来自AngularJS。 在涉及表单之前, mustache.js , Handlebars或_.template都...性能: ngTemplate通过状态差异修改DOM节点; 仅在必要时才接触DOM

    Jquery学习笔记分享

    第1章. JQuery概述 2 1. Jquery基本作用 2 ...4. 替换节点 9 5. 包裹节点 9 6. 属性操作 9 7. 样式操作 9 8. 设置和获取html,文本和值 10 9. 遍历节点 10 10. css-DOM 操作 10 第4章. jQuery的事件 12

    jQuery权威指南-源代码

    3.6 替换节点/68 3.7 包裹节点/69 3.8 遍历元素/71 3.9 删除元素/73 3.10 综合案例分析—数据删除和图片预览在项目中的应用/75 3.10.1 需求分析/75 3.10.2 效果界面/75 3.10.3 功能实现/77 3.10.4 代码分析...

Global site tag (gtag.js) - Google Analytics