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 倒计时效果实现秒杀思路
Sep 11 Javascript
3种不同方式的焦点图轮播特效分享
Oct 30 Javascript
js查找某元素中的所有图片地址的方法
Jan 16 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 Javascript
react-router v4如何使用history控制路由跳转详解
Jan 09 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
React中阻止事件冒泡的问题详析
Apr 12 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 Javascript
javascript单张多张图无缝滚动实例代码
May 10 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
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下打开URL地址的几种方法小结
2010/05/16 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP编写RESTful接口
2016/02/23 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
深入了解Python enumerate和zip
2020/07/16 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
Exception类的常用方法
2012/06/16 面试题
财务会计专业应届毕业生求职信
2013/10/18 职场文书
实习心得体会
2014/01/02 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
交通事故私了协议书
2014/04/16 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
学习十八大的心得体会
2014/09/01 职场文书
保安2014年终工作总结
2014/12/06 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
导游词之广西漓江
2019/11/02 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python