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 相关文章推荐
JavaScript实现点击按钮后变灰避免多次重复提交
Jul 15 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
JavaScript实现网页截图功能
Oct 16 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
Vue 莹石摄像头直播视频实例代码
Aug 31 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 Javascript
可拖拽组件slider.js使用方法详解
Dec 04 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
通过php添加xml文档内容的方法
2015/01/23 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
python操作日期和时间的方法
2014/03/11 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python简易远程控制单线程版
2018/06/20 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
python实现自动化上线脚本的示例
2019/07/01 Python
大学生安全责任书
2014/07/25 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
教师个人自我评价
2015/03/04 职场文书
销售开票员岗位职责
2015/04/15 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
python可视化大屏库big_screen示例详解
2021/11/23 Python