js操作table中tr的顺序实现上移下移一行的效果


Posted in Javascript onNovember 22, 2018

总体思路是在table外部加个div,修改div的innerHtml实现改变tr顺序的效果

具体思路是

获取当前要移动tr行的rowIndex,在table中删除掉,然后循环table的rows,到了目标行再直接加进去,最后把整体的html赋值给div完成效果

js代码如下

//使行向上一行
    function setRowUp(obj) {
      if (obj.parentNode.parentNode.rowIndex != 1) {
        var tab = obj.parentNode.parentNode.parentNode;
        var nowNodeInnerHtml = obj.parentNode.parentNode.innerHTML;
        var nowNowIndex = obj.parentNode.parentNode.rowIndex;
        tab.deleteRow(nowNowIndex);
        var newHtml = "<table cellpadding=\"5\" cellspacing=\"0\">";
        newHtml += ("<TR style='font-weight: bold; text-align: center;'>" + tab.rows[0].innerHTML + "</TR>");
        for (i = 1; i < tab.rows.length; i++) {
          if (i == (nowNowIndex - 1)) {
            newHtml += ("<TR>" + nowNodeInnerHtml + "</TR>");
          }
          newHtml += ("<TR>" + tab.rows[i].innerHTML + "</TR>");
        }
        newHtml += "</table>";
        document.getElementById("divContent").innerHTML = newHtml;
      }
    }
    //使行向下一行
    function setRowDown(obj) {
      if (obj.parentNode.parentNode.rowIndex != (document.getElementById("divContent").childNodes[0].rows.length - 1)) {
        var tab = obj.parentNode.parentNode.parentNode;
        var nowNodeInnerHtml = obj.parentNode.parentNode.innerHTML;
        var nowNowIndex = obj.parentNode.parentNode.rowIndex;
        tab.deleteRow(nowNowIndex);
        var newHtml = "<table cellpadding=\"5\" cellspacing=\"0\">";
        newHtml += ("<TR style='font-weight: bold; text-align: center;'>" + tab.rows[0].innerHTML + "</TR>");
        for (i = 1; i < tab.rows.length; i++) {
          if (i == (nowNowIndex + 1)) {
            newHtml += ("<TR>" + nowNodeInnerHtml + "</TR>");
          }
          newHtml += ("<TR>" + tab.rows[i].innerHTML + "</TR>");
        }
        //向下可能到表格现有行数外 额外处理
        if (tab.rows.length == (nowNowIndex + 1)) {
          newHtml += ("<TR>" + nowNodeInnerHtml + "</TR>");
        }
        newHtml += "</table>";
        document.getElementById("divContent").innerHTML = newHtml;
      }
    }

测试html代码如下

<body>
  <div id="divContent">
    <table cellpadding="5" cellspacing="0">
      <tr style='font-weight: bold; text-align: center;'><td>工号</td><td>姓名</td></tr>
      <tr><td>0001
        <input type="button" value="↑" onclick="setRowUp(this)" />
        <input type="button" value="↓" onclick="setRowDown(this)" />
        </td><td>姓名01</td></tr>
      <tr><td>0002
        <input type="button" value="↑" onclick="setRowUp(this)" />
        <input type="button" value="↓" onclick="setRowDown(this)" />
        </td><td>姓名02</td></tr>
      <tr><td>0003
        <input type="button" value="↑" onclick="setRowUp(this)" />
        <input type="button" value="↓" onclick="setRowDown(this)" />
        </td><td>姓名03</td></tr>
      <tr><td>0004
        <input type="button" value="↑" onclick="setRowUp(this)" />
        <input type="button" value="↓" onclick="setRowDown(this)" />
        </td><td>姓名04</td></tr>
      <tr><td>0005
        <input type="button" value="↑" onclick="setRowUp(this)" />
        <input type="button" value="↓" onclick="setRowDown(this)" />
        </td><td>姓名05</td></tr>
    </table>
  </div>
</body>

总结

以上所述是小编给大家介绍的js操作table中tr的顺序实现上移下移一行的效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js函数般调用正则
Apr 08 Javascript
jquery中ajax学习笔记3
Oct 16 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
May 17 Javascript
JavaScript:Array类型全面解析
May 19 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
Bootstrap导航条鼠标悬停下拉菜单
Jan 04 Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
JavaScript实现文件下载并重命名代码实例
Dec 12 Javascript
小程序登录之支付宝授权的实现示例
Dec 13 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 #Javascript
Vue动态加载异步组件的方法
Nov 21 #Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
Nov 21 #Javascript
跨域解决之JSONP和CORS的详细介绍
Nov 21 #Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 #Javascript
JSON生成Form表单的方法示例
Nov 21 #Javascript
apicloud拉起小程序并传递参数的方法示例
Nov 21 #Javascript
You might like
PHPLog php 程序调试追踪工具
2009/09/09 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
微信小程序实现留言板(Storage)
2018/11/02 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
Python正则表达式如何匹配中文
2020/05/27 Python
Django nginx配置实现过程详解
2020/09/10 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
python实现银行账户系统
2021/02/22 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
超市开业庆典活动策划方案
2014/09/15 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
会议欢迎词范文
2015/01/27 职场文书
代理词怎么写
2015/05/25 职场文书
中学教师教学工作总结
2015/08/13 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书