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 相关文章推荐
Save a File Using a File Save Dialog Box
Jun 18 Javascript
JavaScript 在各个浏览器中执行的耐性
Apr 06 Javascript
JS request函数 用来获取url参数
May 17 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 Javascript
简单的Jquery全选功能
Nov 07 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
elementUI select组件value值注意事项详解
May 29 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
javascript删除数组元素的七个方法示例
Sep 09 Javascript
LayUi数据表格自定义赋值方式
Oct 26 Javascript
利用JavaScript为句子加标题的3种方法示例
Jan 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
浅谈PHP值mysql操作类
2016/06/29 PHP
jquery实现心算练习代码
2010/12/06 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python判断字符串是否纯数字的方法
2014/11/19 Python
深入学习python的yield和generator
2016/03/10 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Django celery异步任务实现代码示例
2020/11/26 Python
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
个性婚礼策划方案
2014/05/17 职场文书
北京申奥口号
2014/06/19 职场文书
单位授权委托书范文
2014/08/02 职场文书
委托证明模板
2014/09/16 职场文书
旷课检讨书500字
2014/10/14 职场文书
2014年统战工作总结
2014/12/09 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书