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 相关文章推荐
innerHTML 和 getElementsByName 在IE下面的bug 的解决
Apr 09 Javascript
JS中的this变量的使用介绍
Oct 21 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
Jun 05 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 Javascript
JS扩展类,克隆对象与混合类实例分析
Nov 26 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
webpack构建vue项目的详细教程(配置篇)
Jul 17 Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 Javascript
JS精确判断数据类型代码实例
Dec 18 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 文件上传功能实现代码
2009/06/24 PHP
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
php函数连续调用实例分析
2015/07/30 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
vue解决跨域问题(推荐)
2020/11/10 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python复合条件下的字典排序
2020/12/18 Python
计算机网络专业推荐信
2013/11/24 职场文书
初一家长会邀请函
2014/01/31 职场文书
降消项目实施方案
2014/03/30 职场文书
国际贸易系求职信
2014/08/09 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
大学学生个人总结
2015/02/15 职场文书
教师个人教学反思
2016/02/23 职场文书
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android