JS实现的表格行上下移动操作示例


Posted in Javascript onAugust 03, 2016

本文实例讲述了JS实现表格行上下移动操作的方法。分享给大家供大家参考,具体如下:

<!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=gb2312" />
<title>表格行移动</title>
</head>
<body>
<table width="200" border="1">
  <tbody>
    <tr>
      <td width="25%">1</td>
      <td width="25%">11</td>
      <td width="25%"><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
      <td width="25%"><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
    </tr>
    <tr>
      <td>2</td>
      <td>22</td>
      <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
      <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
    </tr>
    <tr>
      <td>3</td>
      <td>33</td>
      <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
      <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
    </tr>
    <tr>
      <td>4</td>
      <td>44</td>
      <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
      <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
    </tr>
    <tr>
      <td>5</td>
      <td>55</td>
      <td><a href="javascript:void(0)" onclick="moveUp(this)">上移</a></td>
      <td><a href="javascript:void(0)" onclick="moveDown(this)">下移</a></td>
    </tr>
  </tbody>
</table>
<script type="text/javascript">
<!--
function moveUp(_a){
  var _row = _a.parentNode.parentNode;
  //如果不是第一行,则与上一行交换顺序
  var _node = _row.previousSibling;
  while(_node && _node.nodeType != 1){
    _node = _node.previousSibling;
  }
  if(_node){
    swapNode(_row,_node);
  }
}
function moveDown(_a){
  var _row = _a.parentNode.parentNode;
  //如果不是最后一行,则与下一行交换顺序
  var _node = _row.nextSibling;
  while(_node && _node.nodeType != 1){
    _node = _node.nextSibling;
  }
  if(_node){
    swapNode(_row,_node);
  }
}
function swapNode(node1,node2){
  //获取父结点
  var _parent = node1.parentNode;
  //获取两个结点的相对位置
  var _t1 = node1.nextSibling;
  var _t2 = node2.nextSibling;
  //将node2插入到原来node1的位置
  if(_t1)_parent.insertBefore(node2,_t1);
  else _parent.appendChild(node2);
  //将node1插入到原来node2的位置
  if(_t2)_parent.insertBefore(node1,_t2);
  else _parent.appendChild(node1);
}
//-->
</script>
</body>
</html>

运行效果截图如下:

JS实现的表格行上下移动操作示例

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

Javascript 相关文章推荐
最佳JS代码编写的14条技巧
Jan 09 Javascript
javascript 数字格式化输出的实现代码
Dec 10 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 Javascript
jQuery实现平滑滚动到指定锚点的方法
Mar 20 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
May 09 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
使用express获取微信小程序二维码小记
May 21 Javascript
了解重排与重绘
May 29 Javascript
js实现百度淘宝搜索功能
Feb 17 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 #Javascript
JS使用正则表达式实现关键字替换加粗功能示例
Aug 03 #Javascript
Angular2内置指令NgFor和NgIf详解
Aug 03 #Javascript
JS简单实现点击复制链接的方法
Aug 03 #Javascript
JS清除字符串中重复值的实现方法
Aug 03 #Javascript
JS使用onerror捕获异常示例
Aug 03 #Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
Aug 03 #Javascript
You might like
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
Python中turtle作图示例
2017/11/15 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python中如何使用insert函数
2020/01/09 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
最新创业融资计划书
2014/01/19 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
安全隐患整改报告
2014/11/06 职场文书
2014年双拥工作总结
2014/11/21 职场文书
党员转正申请报告
2015/05/15 职场文书
高中历史教学反思
2016/02/19 职场文书
导游词之太湖
2019/10/08 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP