javascript学习笔记(十九) 节点的操作实现代码


Posted in Javascript onJune 20, 2012

本节要用到的html例子

<ul id="myList"> 
<li>项目一</li> 
<li>项目二</li> 
<li>项目三</li> 
</ul>

1.创建元素节点
document.createElement() 方法 用于创建元素,接受一个参数,即要创建元素的标签名,返回创建的元素节点
var div = document.createElement("div"); //创建一个div元素 
div.id = "myDiv"; //设置div的id 
div.className = "box"; //设置div的class

创建元素后还要把元素添加到文档树中

2.添加元素节点
appendChild() 方法 用于向childNodes列表的末尾添加一个节点,返回要添加的元素节点

var ul = document.getElementById("myList"); //获得ul 
var li = document.createElement("li"); //创建li 
li.innerHTML = "项目四"; //向li内添加文本 
ul.appendChild(li); //把li 添加到ul子节点的末尾

添加后:
<ul id="myList"> 
<li>项目一</li> 
<li>项目二</li> 
<li>项目三</li> 
<li>项目四</li> 
</ul>

appendChild() 方法还可以添加已经存在的元素,会将元素从原来的位置移到新的位置
var ul = document.getElementById("myList"); //获得ul 
ul.appendChild(ul.firstChild); //把ul的第一个元素节点移到ul子节点的末尾

运行后(IE):
<ul id="myList"> 
<li>项目二</li> 
<li>项目三</li> 
<li>项目一</li> 
</ul>

insertBefore() 方法 ,如果不是在末尾插入节点,而是想放在特定的位置上,用这个方法,该方法接受2个参数,第一个是要插入的节点,第二个是参照节点,返回要添加的元素节点
var ul = document.getElementById("myList"); //获得ul 
var li = document.createElement("li"); //创建li 
li.innerHTML= "项目四"; //向li内添加文本 
ul.insertBefore(li,ul.firstChild); //把li添加到ul的第一个子节点前

添加后:
<ul id="myList"> 
<li>项目四</li> 
<li>项目一</li> 
<li>项目二</li> 
<li>项目三</li> 
</ul>

var ul = document.getElementById("myList"); //获得ul 
var li = document.createElement("li"); //创建li 
li.innerHTML= "项目四"; //向li内添加文本 
ul.insertBefore(li,ul.null); //把li添加到ul的子节点末尾

添加后:
<ul id="myList"> 
<li>项目一</li> 
<li>项目二</li> 
<li>项目三</li> 
<li>项目四</li> 
</ul>

var ul = document.getElementById("myList"); //获得ul 
var li = document.createElement("li"); //创建li 
li.innerHTML= "项目四"; //向li内添加文本 
var lis = ul.getElementsByTagName("li") //获取ul中所有li的集合 
ul.insertBefore(li,lis[1]); 
//把li添加到ul中的第二个li节点前

添加后:
<ul id="myList"> 
<li>项目一</li> 
<li>项目四</li> 
<li>项目二</li> 
<li>项目三</li> 
</ul>

3.移除元素节点
removeChild() 方法 ,用于移除节点,接受一个参数,即要移除的节点,返回被移除的节点,注意被移除的节点仍然在文档中,不过文档中已没有其位置了
var ul = document.getElementById("myList"); //获得ul 
var fromFirstChild = ul.removeChild(ul.firstChild); //移除ul第一个子节点1 var ul = document.getElementById("myList"); //获得ul 
var lis = ul.getElementsByTagName("li") //获取ul中所有li的集合 
ul.removeChild(lis[0]); 

//移除第一个li,与上面不同,要考虑浏览器之间的差异

4.替换元素节点
replaceChild() 方法 ,用于替换节点,接受两个参数,第一参数是要插入的节点,第二个是要替换的节点,返回被替换的节点
var ul = document.getElementById("myList"); //获得ul 
var fromFirstChild = ul.replaceChild(ul.firstChild); //替换ul第一个子节点1 var ul = document.getElementById("myList"); //获得ul; 
var li = document.createElement("li"); //创建li 
li.innerHTML= "项目四"; //向li内添加文本 
var lis = ul.getElementsByTagName("li") //获取ul中所有li的集合 
var returnNode = ul.replaceChild(li,lis[1]); //用创建的li替换原来的第二个li

5.复制节点
cloneNode() 方法,用于复制节点, 接受一个布尔值参数, true 表示深复制(复制节点及其所有子节点), false 表示浅复制(复制节点本身,不复制子节点)
var ul = document.getElementById("myList"); //获得ul 
var deepList = ul.cloneNode(true); //深复制 
var shallowList = ul.cloneNode(false); //浅复制

节点的操作要注意IE和其它浏览器的差异(第十八节中有讲到)
Javascript 相关文章推荐
javascript 多浏览器 事件大全
Mar 23 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
Sep 20 Javascript
js中继承的几种用法总结(apply,call,prototype)
Dec 26 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
Aug 15 Javascript
javascript的正则匹配方法学习
Feb 24 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
ECMAScript6--解构
Mar 30 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
ES6 Generator基本使用方法示例
Jun 06 Javascript
使用Vue实现一个树组件的示例
Nov 06 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 #Javascript
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 #Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 #Javascript
javascript学习笔记(十五) js间歇调用和超时调用
Jun 20 #Javascript
javascript学习笔记(十四) window对象使用介绍
Jun 20 #Javascript
javascript学习笔记(十三) js闭包介绍(转)
Jun 20 #Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 #Javascript
You might like
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
PHP的分页功能
2007/03/21 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
php获取汉字首字母的函数
2013/11/07 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
jQuery 动态酷效果实现总结
2009/12/27 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
Python的re模块正则表达式操作
2016/05/25 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
大学生个人求职信范文
2013/09/21 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
新闻通讯稿模板
2015/07/22 职场文书
诚信教育主题班会
2015/08/13 职场文书