JavaScript实现节点的删除与序号重建实例


Posted in Javascript onAugust 05, 2015

本文实例讲述了JavaScript实现节点的删除与序号重建。分享给大家供大家参考。具体如下:

这里演示JavaScript节点的删除与重建方法,删除节点后,会自动重新建立节点,序号自动排列,比如删除当前的第3条数据后,第4条的序号会智能变为3,以此类推,保证序号不乱。

运行效果如下图所示:

删除前:

JavaScript实现节点的删除与序号重建实例

删除后:

JavaScript实现节点的删除与序号重建实例

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>节点重建、示例代码</title>
<style type="text/css">
html{color:#000;background:#FFF;font-family:Arial, Helvetica, sans-serif;}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
q:before,q:after{content:'';}
abbr,acronym{border:0;font-variant:normal;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}
input,textarea,select{*font-size:100%;}
legend{color:#000;}
body{text-align:center;color:#000;}
a:link,a:visited,a:hover{text-decoration:none;color:#049;}
a:hover{text-decoration:underline;}
table{margin:30px auto;width:600px;border:1px solid #CDCDCD;}
thead{background-color:#F3F3F3;}
th,td{height:26px;line-height:26px;font-size:14px;text-align:center;}
.left{text-align:left;}
</style>
<base target="_blank" />
</head>
<body>
<table cellpadding="0" cellspacing="0">
<thead>
  <tr>
    <th width="50">编号</th>
    <th>标题</th>
    <th width="50">操作</th>
  </tr>
</thead>
<tbody id="reroder-list">
  <tr>
    <td>1</td>
    <td class="left"><a href="https://3water.com/article/70631.htm">JS+CSS实现表格高亮的方法</a></td>
    <td><a href="#del" class="lnk-del">删除</a></td>
  </tr>
  <tr>
    <td>2</td>
    <td class="left"><a href="https://3water.com/article/70625.htm">JavaScript节点及列表操作实例小结</a></td>
    <td><a href="#del" class="lnk-del">删除</a></td>
  </tr>
  <tr>
    <td>3</td>
    <td class="left"> <a href="https://3water.com/article/70613.htm">JavaScript实现删除,移动和复制文件的方法</a></td>
    <td><a href="#del" class="lnk-del">删除</a></td>
  </tr>
  </tbody>
</table>
<script type="text/javascript">
var delAndReorder = function(root,rowTag,delTag,delClass,idTag){
  var doc = document, 
  list = doc.getElementById(root || 'reroder-list');
  if(!list){
    return false;
  }
  var stopEvent = function(evt){
    stopPropagation(evt);
    preventDefault(evt);
  }, 
  stopPropagation = function(evt){
    if (evt.stopPropagation) {
      evt.stopPropagation();
    }
    else {
      evt.cancelBubble = true;
    }
  }, 
  preventDefault = function(evt){
    if (evt.preventDefault) {
      evt.preventDefault();
    }
    else {
      evt.returnValue = false;
    }
  },
  hasClass = function(elem, className){
    var has = new RegExp("(?:^|\\s+)" + className + "(?:\\s+|$)");
    return has.test(elem.className);
  },
  byClass = function(tag,className,root){
    var elems = [], 
    tempEl = root.getElementsByTagName(tag),
    i, 
    len = tempEl.length;
    
    for (i = 0; i < len; ++i) {
      if (hasClass(tempEl[i], className)) {
        elems.push(tempEl[i]);
      }
    }
    if (elems.length < 1) {
      return false;
    }
    else {
      return elems;
    }
  },
  firstTds = [],
  rows = list.getElementsByTagName(rowTag || 'tr'),
  delBtns = byClass((delTag || 'a'), (delClass || 'lnk-del'), list),
  i = 0, 
  len = rows.length,
  reorder = function(idx){
    var i = idx, len = firstTds.length;
    if(idx!==(len-1)){
      for(;i<len;i+=1){
        firstTds[i].innerHTML = i;
      }
    }
  };
  for (; i < len; i += 1) {
    firstTds.push(rows[i].getElementsByTagName(idTag || 'td')[0]);
    delBtns[i].onclick = function(idx){
      return function(event){
        var evt = event || window.event;
        list.removeChild(rows[idx]);
        reorder(idx);
        delAndReorder();
        stopEvent(evt);
      };
    }(i);
  }
}  
delAndReorder();
</script>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JQuery this 和 $(this) 的区别
Aug 23 Javascript
jquery maxlength使用说明
Sep 09 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
javascript实现unicode与ASCII相互转换的方法
Dec 10 Javascript
jQuery实现的导航动画效果(附demo源码)
Apr 01 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
jquery实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
Bootstrap实现基于carousel.js框架的轮播图效果
May 02 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
js键盘事件实现人物的行走
Jan 17 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 #Javascript
JS+CSS实现表格高亮的方法
Aug 05 #Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
Aug 05 #Javascript
JavaScript节点及列表操作实例小结
Aug 05 #Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 #Javascript
coffeescript使用的方式汇总
Aug 05 #Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
Aug 05 #Javascript
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
PHP动态柱状图实现方法
2015/03/30 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
理解javascript异步编程
2016/01/27 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
vue生命周期实例小结
2018/08/15 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
python输出100以内的质数与合数实例代码
2018/07/08 Python
Python3多线程基础知识点
2019/02/19 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
python模拟实现分发扑克牌
2020/04/22 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
邮政员工辞职信
2014/01/16 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
公司离职证明标准范本
2014/10/05 职场文书
2015年见习期工作总结
2014/12/12 职场文书
物资采购管理制度
2015/08/06 职场文书
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android