js原生代码实现able中tr上移下移
时间:2018-11-21
本文章向大家介绍js操作table中tr的顺序,实现上移下移一行的效果,需要的朋友可以参考一下
总体思路是在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>
- 在mono 3.0 下运行ASP.NET 4网站的主意事项
- 《干货系列》SQL语句-知无不言言无不尽
- OutOfMemoryError异常系列之方法区溢出和运行时常量溢出池溢出
- 代码转换工具 Code Converter 2013
- OutOfMemoryError异常系列之Java堆溢出
- android ndk之hello world
- ScheduledExecutorService和timer的异同
- 【精心解读】关于Jupyter Notebook的28个技巧
- Web项目接口自动化测试框架搭建
- 一文读懂Hadoop、HBase、Hive、Spark分布式系统架构
- 《Spring敲门砖之基础教程第一季》 第二章(1) Spring框架之IOC首例-HelloWorld
- Java9中的GC调优基础
- javascript深入理解js闭包
- https连接的前几毫秒发生了什么
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php ajax confirm 删除实例详解
- PHP模糊查询技术实例分析【附源码下载】
- 解决keras,val_categorical_accuracy:,0.0000e+00问题
- 导致python中import错误的原因是什么
- Python RabbitMQ实现简单的进程间通信示例
- PHP删除数组中特定元素的两种方法
- 如何写出让同事无法维护的代码?
- 浅谈php://filter的妙用
- PHP中“=>
- CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
- PHP实现获取毫秒时间戳的方法【使用microtime()函数】
- 利用PHP如何统计Nginx日志的User Agent数据
- PHP树形结构tree类用法示例
- PHP PDOStatement::errorCode讲解
- Laravel框架搜索分页功能示例