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 相关文章推荐
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
React.js入门学习第一篇
Mar 30 Javascript
Bootstrap select多选下拉框实现代码
Dec 23 Javascript
JS实现div模块的截图并下载功能
Oct 17 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
Mar 16 Javascript
vue实现路由切换改变title功能
May 28 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 Javascript
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
jQuery实现鼠标拖动图片功能
Mar 04 jQuery
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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
python中的列表推导浅析
2014/04/26 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python3解释器知识点总结
2019/02/19 Python
微信小程序python用户认证的实现
2019/07/29 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Python绘制热力图示例
2019/09/27 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
python 将Excel转Word的示例
2021/03/02 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
银行进社区活动总结
2014/07/07 职场文书
javaScript Array api梳理
2021/03/31 Javascript