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 相关文章推荐
IE php关于强制下载文件的代码
Aug 23 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
使用JavaScript和C#中获得referer
Nov 14 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
window.location.hash知识汇总
Nov 09 Javascript
jQuery树形控件zTree使用小结
Aug 02 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
Jul 13 Javascript
微信小程序返回多级页面的实现方法
Oct 27 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
前端路由&amp;webpack基础配置详解
Jun 10 Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 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 基本语法格式
2009/12/15 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
python图片验证码生成代码
2016/07/02 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
如何使用python操作vmware
2019/07/27 Python
用 Python 制作地球仪的方法
2020/04/24 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
建筑工程毕业生自我鉴定
2014/01/14 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
文明礼貌主题班会
2015/08/14 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL