使用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 相关文章推荐
用ASP将SQL搜索出来的内容导出为TXT的代码
Jul 27 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
Oct 01 Javascript
原生js 秒表实现代码
Jul 24 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
详解JavaScript对象类型
Jun 16 Javascript
js实现按钮控制带有停顿效果的图片滚动
Aug 30 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
vscode下的vue文件格式化问题
Nov 28 Javascript
小程序实现抽奖动画
Apr 16 Javascript
vue 实现小程序或商品秒杀倒计时
Apr 14 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 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 has encountered an Access Violation
2007/01/15 PHP
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
php解析xml方法实例详解
2015/05/12 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python解析基于xml格式的日志文件
2017/02/25 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
历史系毕业生自荐信
2013/10/28 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
2014年教学工作总结
2014/11/13 职场文书
2014年度思想工作总结
2014/11/27 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
乡镇团代会开幕词
2016/03/04 职场文书