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数组的扩展实现代码集合
Jun 01 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
Aug 16 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
8个实用的jQuery技巧
Mar 04 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
axios实现文件上传并获取进度
Mar 25 Javascript
vue created钩子函数与mounted钩子函数的用法区别
Nov 05 Javascript
js实现上传图片到服务器
Apr 11 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
php Calender(日历)代码分享
2014/01/03 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
使用JavaScript进行表单校验功能
2017/08/01 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
Python 数据结构之队列的实现
2017/01/22 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
汇科协同Java笔试题
2012/03/31 面试题
如何写一份好的英文求职信
2014/03/19 职场文书
物业品质提升方案
2014/06/08 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸