js操作table中tr的顺序,实现上移下移一行的效果
2018-11-22 08:43:06来源:博客园 阅读 ()
总体思路是在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>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JS之相等操作符详解 2020-03-12
- JS批量操作CSS属性详细解析 2020-02-29
- jquery 操作iframe的几种方法总结 2020-02-22
- JS实现table表格固定表头且表头随横向滚动而滚动 2020-02-07
- Js操作DOM元素及获取浏览器高宽的简单方法 2019-12-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash