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 相关文章推荐
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 Javascript
JQuery加载图片自适应固定大小的DIV
Sep 12 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
Feb 23 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
Nov 02 Javascript
jQuery Ajax使用实例
Apr 16 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 30 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
JavaScript单线程和任务队列原理解析
Feb 04 Javascript
NestJs使用Mongoose对MongoDB操作的方法
Feb 22 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 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
JavaScript 比较时间大小的代码
2010/04/24 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
jQuery事件用法详解
2016/10/06 Javascript
React组件的三种写法总结
2017/01/12 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
Python break语句详解
2014/03/11 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
python定义类self用法实例解析
2020/01/22 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
自考生自我鉴定范文
2013/10/01 职场文书
主持人演讲稿范文
2013/12/28 职场文书
精彩自我鉴定
2014/01/16 职场文书
老龄工作先进事迹
2014/08/15 职场文书
安全生产标语大全
2014/10/06 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
班主任经验交流材料
2014/12/16 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL