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 在网页中的运用(asp.net)
Nov 23 Javascript
jQuery 前的按键判断代码
Mar 19 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
实例解析Array和String方法
Dec 14 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
Aug 02 Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
基于vue框架手写一个notify插件实现通知功能的方法
Mar 31 Javascript
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
JavaScript实现队列结构过程
Dec 06 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利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
Python基础教程之利用期物处理并发
2018/03/29 Python
python实现简易内存监控
2018/06/21 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
PHP笔试题
2012/02/22 面试题
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
电子信息专业学生自荐信
2013/11/09 职场文书
单位未婚证明范本
2014/01/18 职场文书
超市国庆节促销方案
2014/02/20 职场文书
党员教师工作决心书
2014/03/13 职场文书
学校安全生产承诺书
2014/05/23 职场文书
2014年化验员工作总结
2014/11/18 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers