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 相关文章推荐
图片自动缩小的js代码,用以防止图片撑破页面
Mar 12 Javascript
jQuery function的正确书写方法
Aug 02 Javascript
为开发者准备的10款最好的jQuery日历插件
Feb 04 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
Nov 18 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 Javascript
Vue列表循环从指定下标开始的多种解决方案
Apr 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
php 过滤危险html代码
2009/06/29 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python手写均值滤波
2020/02/19 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
会计专业推荐信
2013/10/29 职场文书
个人剖析材料范文
2014/09/30 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS