js操作table中tr的顺序实现上移下移一行的效果
程序员文章站
2022-11-09 15:53:25
总体思路是在table外部加个div,修改div的innerhtml实现改变tr顺序的效果
具体思路是
获取当前要移动tr行的rowindex,在table中删除掉,然...
总体思路是在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的顺序实现上移下移一行的效果,希望对大家有所帮助