使用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 相关文章推荐
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 Javascript
javascript实现列表切换效果
May 02 Javascript
如何处理JSON中的特殊字符
Nov 30 Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
Node.js 多线程完全指南总结
Mar 27 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
JavaScript实现多个物体同时运动
Mar 12 Javascript
原生JS封装拖动验证滑块的实现代码示例
Jun 01 Javascript
JavaScript实现音乐导航效果
Nov 19 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
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
详解vue组件基础
2018/05/04 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
学习python的前途 python挣钱
2019/02/27 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
python requests证书问题解决
2019/09/05 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
浅析Python 多行匹配模式
2020/07/24 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
电信营业员自我评价分享
2014/01/17 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
致运动员加油稿
2015/07/21 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
Python Django获取URL中的数据详解
2021/11/01 Python