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 相关文章推荐
javascript 操作select下拉列表框的一点小经验
Mar 20 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
js给selected添加options的方法
May 06 Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
深入理解vue路由的使用
Mar 24 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
Mar 30 Javascript
Angular中的interceptors拦截器
Jun 25 Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 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
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
python采集博客中上传的QQ截图文件
2014/07/18 Python
python自动化测试实例解析
2014/09/28 Python
Python的time模块中的常用方法整理
2015/06/18 Python
深入理解Python装饰器
2016/07/27 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
技术总监管理职责范本
2014/03/06 职场文书
讲解员培训方案
2014/05/04 职场文书
保护环境建议书300字
2014/05/13 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
个人授权委托书
2014/09/15 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
初中中等生评语
2014/12/29 职场文书
男方婚礼答谢词
2015/01/20 职场文书
团代会闭幕词
2015/01/28 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers