使用js完成节点的增删改复制等的操作


Posted in Javascript onJanuary 02, 2014

需求:完成节点的增删改复制的操作

用到的方法和属性:
1.获取某个节点的父节点
parentNode属性
2.获取某个节点的子节点集合
childNodes属性
3.创键一个新的节点
createTextNode(节点文本内容) document对象的方法 在某些浏览器上兼容性不是很好
createElement(对象) document对象的方法 例如:document.createElement("a");
4.给某个节点对象添加属性和属性值
setAttribute(属性,属性值); 例如:aNode.setAttribute("href","http://www.baidu.com");
5.替换某个节点下的子节点
replaceChild(新节点,原子节点);
6.将某个节点添加到一个节点下
appendChild(要添加的节点)
7.克隆某个节点

cloneNode() 不传参数和传入true参数一样,表示克隆该节点包括子节点

<!DOCTYPE html> 
<html> 
<head> 
<title>node_CURD.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
<meta http-equiv="description" content="this is my page"> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<!--<link rel="stylesheet" type="text/css" href="./styles.css">--> 
<style type="text/css"> 
div{ 
border: red 1px solid; 
width: 200px; 
height: 50px; 
margin: 20px 30px; 
padding: 20px; 
} 
#div_1{ 
clear:both; 
background-color:#FF3366; 
} 
#div_2{ 
clear:both; 
background-color:#6699FF; 
} 
#div_3{ 
clear:both; 
background-color:#CCCC99; 
} 
#div_4{ 
clear:both; 
background-color:#00CC33; 
} 
</style> 
<script type="text/javascript"> 
// 增加方式一:给第一个div区域添加文本 
function addText(){ 
//1.获取要添加文本内容的节点 
var div_1Node = document.getElementById("div_1"); 
//2.创建一个文本节点。document对象的createTextNode(文本内容)方法。某些浏览器不支持。 
var TextNode = document.createTextNode("这不就显示了吗?"); 
//3.将文本节点添加到要添加的节点下appendChild(要添加的子节点实例)方法 
div_1Node.appendChild(TextNode); 
} 
// 增加方式二:给第一个div区域添加按钮 
function addButton(){ 
//1.获取要添加文本内容的节点 
var div_1Node = document.getElementById("div_1"); 
//2.创建一个节点。document对象的createElement() 
var aNode = document.createElement("input"); 
//3.给指定对象添加属性和属性值 
//aNode.setAttribute("type","button");//和下面一句代码达到的效果一样 
aNode.type="button"; 
aNode.setAttribute("value","按钮"); 
aNode.setAttribute("onclick","deleteText('div_1')"); 
//4.将文本节点添加到要添加的节点下appendChild(要添加的子节点实例)方法 
div_1Node.appendChild(aNode); 
} 
// 删除方式一:删除第二个区域的节点的子节点 
function deleteText(NodeId){ 
//1.获取块节点 
var divNode = document.getElementById(NodeId); 
//2.获取子节点,即文本节点 
var chileNode = divNode.childNodes[0]; 
//3.删除,传入一个参数true会删除其下所有子节点 
//chileNode.removeNode(); // 此方式在火狐和谷歌下不兼容 
divNode.removeChild(chileNode); 
} 
// 删除方式二:删除元素 
function deleteElement(){ 
//1.获取块节点 
var div_2Node = document.getElementById("div_2"); 
//2.获取父节点, 
var parentNode = div_2Node.parentNode; 
//3.删除 
parentNode.removeChild(div_2Node); 
} 
// 修改 
function UpdateText(){ 
//1获取要修改字符的区域的节点 
var div_3Node = document.getElementById("div_3"); 
//2.获取第一步中的子节点集合,指定到要修改的节点 
var childNode = div_3Node.childNodes[0]; 
//3.创建一个文本节点 
var newNode = document.createTextNode("哈哈,我把你替换了."); 
//4.用3步创建的节点替换2步骤中的节点 
//childNode.replaceNode(newNode);//此方式在火狐和谷歌下不兼容 
div_3Node.replaceChild(newNode,childNode); 
} 
//克隆 
function copyNode(){ 
//1.获取第四区域节点 
var div_1Node = document.getElementById("div_1"); 
//2.获取第一区域节点 
var div_4Node = document.getElementById("div_4"); 
//3.获得一个新节点通过克隆第四节点 
var newNode = div_4Node.cloneNode();//传入参数true表示克隆整个节点,包括子节点.默认是true参数的结果 
//4.将步骤3的新节点替换掉原来的第一节点 
div_1Node.parentNode.replaceChild(newNode,div_1Node); 
} 
</script> 
</head> 
<body> 
<div id="div_1"></div> 
<div id="div_2">这里是第二个区域</div> 
<div id="div_3">这里是第三个区域</div> 
<div id="div_4">这里是第四个区域</div> 
<hr /> 
<font size="12px">增:</font> 
<input type="button" value="给第一个区域增加文本" onclick="addText()" /> 
<input type="button" value="给第一个区域增加一个按钮" onclick="addButton()" /> 
<hr /> 
<font size="12px">删:</font> 
<input type="button" value="删除第二区域的文本内容" onclick="deleteText('div_2')" /> 
<input type="button" value="删除第二个区域" onclick="deleteElement()" /> 
<hr /> 
<font size="12px">改:</font> 
<input type="button" value="修改第三个区域中的内容" onclick="UpdateText()" /> 
<hr /> 
<font size="12px">克隆:</font> 
<input type="button" value="将第四区域克隆到第一区域" onclick="copyNode()" /> 
</body> 
</html>
Javascript 相关文章推荐
juery框架写的弹窗效果适合新手
Nov 27 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
Node.js  REPL (交互式解释器)实例详解
Aug 06 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
Oct 29 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 Javascript
js实现动态改变字体大小代码
Jan 02 #Javascript
js创建元素(节点)示例
Jan 02 #Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 #Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
Jan 02 #Javascript
javascript中处理时间戳为日期格式的方法
Jan 02 #Javascript
JS脚本defer的作用示例介绍
Jan 02 #Javascript
Javascript中常见的校验如域名、手机、邮箱等等
Jan 02 #Javascript
You might like
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
PHP echo()函数讲解
2019/02/15 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
详解参数传递四种形式
2015/07/21 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
Python中的True,False条件判断实例分析
2015/01/12 Python
python制作一个桌面便签软件
2015/08/09 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python同步遍历多个列表的示例
2019/02/19 Python
python爬虫---requests库的用法详解
2020/09/28 Python
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
华为c/c++笔试题
2016/01/25 面试题
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
入党申请书自我鉴定
2013/10/12 职场文书
2013届毕业生求职信范文
2013/11/20 职场文书
网络技术专业推荐信
2014/02/20 职场文书
环境工程专业自荐信
2014/03/03 职场文书
市场营销工作计划书
2014/05/06 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
监察建议书格式
2014/05/19 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
pandas中关于apply+lambda的应用
2022/02/28 Python