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的跨域传输数据(JSONP)
Mar 10 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
Jan 07 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
Jan 19 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 Javascript
JsChart组件使用详解
Mar 04 Javascript
图文讲解vue的v-if使用方法
Feb 11 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
JavaScript实现网页动态生成表格
Nov 25 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
yii上传文件或图片实例
2014/04/01 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
Git命令之分支详解
2021/03/02 PHP
Javascript - HTML的request类
2006/07/15 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
Python实现字典依据value排序
2016/02/24 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
python实现最长公共子序列
2018/05/22 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Python 使用office365邮箱的示例
2020/10/29 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
教师求职信怎么写
2015/03/20 职场文书
撤诉申请怎么写
2015/05/19 职场文书
债务追讨律师函
2015/06/24 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python