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 相关文章推荐
Js组件的一些写法
Sep 10 Javascript
js获取当前月的第一天和最后一天的小例子
Nov 18 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
使用mini-define实现前端代码的模块化管理
Dec 25 Javascript
Bootstrap Table的使用总结
Oct 08 Javascript
vue制作加载更多功能的正确打开方式
Oct 12 Javascript
vue.js父组件使用外部对象的方法示例
Apr 25 Javascript
深入理解es6块级作用域的使用
Mar 28 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
JavaScript实现轮播图效果
Oct 30 Javascript
iview实现动态表单和自定义验证时间段重叠
Jan 10 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
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
url地址自动加#号问题说明
2010/08/21 Javascript
DOM 事件流详解
2015/01/20 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
Vue中的Vux配置指南
2017/12/08 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
Python编程入门的一些基本知识
2015/05/13 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
会计与审计专业大专生求职信
2013/10/03 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
自我评价范文
2013/12/22 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
安徽导游词
2015/02/12 职场文书
岗位聘任报告
2015/03/02 职场文书
经营场所使用证明
2015/06/19 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
Python音乐爬虫完美绕过反爬
2021/08/30 Python