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 相关文章推荐
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
JavaScript实现二分查找实例代码
Feb 22 Javascript
node.js基础知识小结
Feb 26 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
使vue实现jQuery调用的两种方法
May 12 jQuery
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
Oct 01 Javascript
JavaScript的一些小技巧分享
Jan 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
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
react 生命周期实例分析
2020/05/18 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python中的heapq模块源码详析
2019/01/08 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
超级实用的8个Python列表技巧
2020/08/24 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
护理学中专毕业生求职信
2013/11/11 职场文书
会走路的树教学反思
2014/02/20 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
《司马光》教学反思
2016/02/22 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
python 模块重载的五种方法
2021/04/24 Python
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
Python图像处理库PIL详细使用说明
2022/04/06 Python