JS实现的表格行上下移动操作示例

前端技术 2023/09/01 JavaScript

本文实例讲述了JS实现表格行上下移动操作的方法。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />
<title>表格行移动</title>
</head>
<body>
<table width=\"200\" border=\"1\">
  <tbody>
    <tr>
      <td width=\"25%\">1</td>
      <td width=\"25%\">11</td>
      <td width=\"25%\"><a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a></td>
      <td width=\"25%\"><a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a></td>
    </tr>
    <tr>
      <td>2</td>
      <td>22</td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a></td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a></td>
    </tr>
    <tr>
      <td>3</td>
      <td>33</td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a></td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a></td>
    </tr>
    <tr>
      <td>4</td>
      <td>44</td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a></td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a></td>
    </tr>
    <tr>
      <td>5</td>
      <td>55</td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a></td>
      <td><a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a></td>
    </tr>
  </tbody>
</table>
<script type=\"text/javascript\">
<!--
function moveUp(_a){
  var _row = _a.parentNode.parentNode;
  //如果不是第一行,则与上一行交换顺序
  var _node = _row.previousSibling;
  while(_node && _node.nodeType != 1){
    _node = _node.previousSibling;
  }
  if(_node){
    swapNode(_row,_node);
  }
}
function moveDown(_a){
  var _row = _a.parentNode.parentNode;
  //如果不是最后一行,则与下一行交换顺序
  var _node = _row.nextSibling;
  while(_node && _node.nodeType != 1){
    _node = _node.nextSibling;
  }
  if(_node){
    swapNode(_row,_node);
  }
}
function swapNode(node1,node2){
  //获取父结点
  var _parent = node1.parentNode;
  //获取两个结点的相对位置
  var _t1 = node1.nextSibling;
  var _t2 = node2.nextSibling;
  //将node2插入到原来node1的位置
  if(_t1)_parent.insertBefore(node2,_t1);
  else _parent.appendChild(node2);
  //将node1插入到原来node2的位置
  if(_t2)_parent.insertBefore(node1,_t2);
  else _parent.appendChild(node1);
}
//-->
</script>
</body>
</html>

运行效果截图如下:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

本文地址:https://www.stayed.cn/item/1798

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。