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 相关文章推荐
url地址自动加#号问题说明
Aug 21 Javascript
js变换显示图片的实例
Apr 16 Javascript
JS实现自适应高度表单文本框的方法
Feb 25 Javascript
Javascript BOM学习小结(六)
Nov 26 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
彻底弄懂 JavaScript 执行机制
Oct 23 Javascript
vue form check 表单验证的实现代码
Dec 09 Javascript
爬虫利器Puppeteer实战
Jan 09 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 Javascript
JS实现音乐导航特效
Jan 06 Javascript
vue 获取元素额外生成的data-v-xxx操作
Sep 09 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 APC的安装与使用详解
2013/06/13 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
python中实现php的var_dump函数功能
2015/01/21 Python
python实现简单的socket server实例
2015/04/29 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
python requests 测试代理ip是否生效
2018/07/25 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
python+pygame实现坦克大战
2019/09/10 Python
python 19个值得学习的编程技巧
2020/08/15 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
公司离职证明范本
2014/01/13 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
青年志愿者活动总结
2014/04/26 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python
在CSS中使用when/else的方法
2022/01/18 HTML / CSS