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 相关文章推荐
html下载本地
Jun 19 Javascript
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
关于js中for in的缺陷浅析
Dec 02 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
点击button获取text内容并改变样式的js实现
Sep 09 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
Jan 13 Javascript
JavaScript实现修改伪类样式
Nov 27 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
Apr 29 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 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生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php define的第二个参数使用方法
2013/11/04 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Javascript实现基本运算器
2017/07/15 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
JavaScript 异步调用
2017/10/25 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
Django实现图片文字同时提交的方法
2015/05/26 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
校园十佳歌手策划书
2014/01/22 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
珍惜水资源建议书
2014/03/12 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
2015年司机工作总结
2015/04/23 职场文书
中秋晚会致辞
2015/07/31 职场文书
运动会广播稿300字
2015/08/19 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
《雷雨》教学反思
2016/02/20 职场文书