总体思路是在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>

更多专业前端知识,请上 【猿2048】www.mk2048.com

js操作table中tr的顺序,实现上移下移一行的效果相关推荐

  1. html表格整体左移动,js操作table统制tr jquery 两个table左右移动

    js操作table控制tr jquery 两个table左右移动 一.关于动态操作select的问题: ------------------------------------------------ ...

  2. Jquery和JS获取Table中tr标签的值以及赋值问题

    Jquery和JS获取Table中tr标签的值以及赋值 业务场景:根据 类型,给比例赋值,是当前td比例动态变化:废话少说,直接上代码 1.以下是HTML代码; <div class=" ...

  3. 用js操作table、tr、td 「字体样式及TD背景图片」

    function messageSort() {  --函数名 var message=document.getElementById("message").value; --添加 ...

  4. js控制table中tr位置互换

    <!-- 测试 --> <script type="text/javascript">    function doit(f, t) {         $ ...

  5. html里table的遍历,js遍历table中的tr

    js遍历table中的tr function tt(){ var table1=document.getElementById('table1'); //节点只支持getElementsByTagNa ...

  6. table中tr使用toggle不好,选择换一张方式

    好几次遇到的问题,都是table中tr后面有一部分内容要显示,也是用tr装的,但是需要点击该行,后面那个tr才显示出来.不过最好不要用toggle去写,因为着实效果不佳.故而建议换一种方式,也许最简单 ...

  7. html怎么自动导入数据并排序,JS实现table表格数据排序功能(可支持动态数据+分页效果)...

    asp.net会经常遇到分页的效果,尤其是希望实现静态的html分页排序(html分页相信大家都已经有自己的解决方案.在这里就不多说).我写了一个简单的Demo排序. 数据就是字母和数字两组.(汉字需 ...

  8. html ul 位置上移,JS移动li行数据,点击上移下移(是位置的互换,不是top的偏移量改变)...

    JS移动li行数据,点击上移下移 * { padding:0; margin:0; } .content {width:500px;margin:20px auto;} #pCon {width:50 ...

  9. js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法

    表格有几行: var trCnt = table.rows.length;  (table为Id ) 每行有几列:for (var i=0; i<trCnt; i++)              ...

最新文章

  1. 没那么复杂,只需要一个故事就能理解NIO!
  2. mysql sum_MySQL中的SUM函数使用教程
  3. LUNA16_Challange数据预处理1
  4. python实现不重复排列组合_Python使用combinations实现排列组合的方法
  5. 2018 CodeM复赛:C. 边的染色
  6. 七,OpenERP 移库操作模块
  7. 5. PHP APC APCu 安装使用
  8. gnuradio上怎么使用python文件_使用Python下载文件的简单示例
  9. 水仙花数c语言程序vb,VB编程:求水仙花数
  10. JDBC作用接口和创建的步骤详细解析
  11. 宝德银河麒麟系统打印机安装及共享方法(一)
  12. reaxff反应力场计算
  13. 怎样将系统防御升到服务器级别,H3C IPS入侵防御系统 Web配置手册-5PW104
  14. 网络安全攻防战——一场看不见硝烟的战争
  15. 9. 成功解决:Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found
  16. USB OVER Network的使用(共享usb端口)
  17. c语言中循环并列语句顺序,C语言第五讲,语句 顺序循环选择.
  18. 【turtle库】Python绘制圣诞树
  19. 打印_battery_status.scale
  20. 黑金壁纸小程序 二开修复版源码

热门文章

  1. Java语言学习概述
  2. 2018年工业机器人销量排位_长安-2018年11月汽车销量 细分销量
  3. 哨兵一号数据snap预处理_利用SNAP软件进行Sentinel-1A卫星微波影像的预处理
  4. cad卸载_怎么把CAD卸载干净,老司机来教你
  5. 【洛谷P2743】【poj 1743】[USACO5.1]乐曲主题Musical Themes
  6. 基于django rest framework的mock server实践
  7. background-size属性100% cover contain
  8. 输入焦点默认指示在编辑框上
  9. eclipse复制代码连接数据库404_再见,Eclipse ...
  10. matlab imwrite将图像保存到其他目录