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和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
Sep 24 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
javascript制作幻灯片(360度全景图片)
Jul 28 Javascript
深入理解JavaScript中的浮点数
May 18 Javascript
Bootstrap CSS组件之大屏幕展播
Dec 17 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
深入理解javascript中的 “this”
Jan 17 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
微信小程序倒计时功能实现代码
Nov 09 Javascript
9种改善AngularJS性能的方法
Nov 28 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 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删除非空目录的函数代码小结
2013/02/28 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
用户注册常用javascript代码
2009/08/29 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
vue实现登录功能
2020/12/31 Vue.js
python进阶教程之异常处理
2014/08/30 Python
用python读写excel的方法
2014/11/18 Python
理解Python中函数的参数
2015/04/27 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
理解python中生成器用法
2017/12/20 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
用python实现一个简单的验证码
2020/12/09 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
局部内部类是否可以访问非final变量?
2013/04/20 面试题
公司拓展活动方案
2014/02/13 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
委托公证书样本
2015/01/23 职场文书
面试复试通知单
2015/04/24 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
python爬虫selenium模块详解
2021/03/30 Python
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL