当前位置:首页 > JavaScript

实现表格上移下移 js

2026-03-01 23:27:36JavaScript

实现表格行上移下移功能

通过JavaScript实现表格行的上移和下移操作,可以结合DOM操作和事件监听完成。以下是具体实现方法:

实现表格上移下移 js

基本HTML结构

<table id="sortableTable">
  <thead>
    <tr>
      <th>姓名</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>张三</td>
      <td>
        <button class="move-up">上移</button>
        <button class="move-down">下移</button>
      </td>
    </tr>
    <tr>
      <td>李四</td>
      <td>
        <button class="move-up">上移</button>
        <button class="move-down">下移</button>
      </td>
    </tr>
    <!-- 更多行... -->
  </tbody>
</table>

JavaScript实现

document.addEventListener('DOMContentLoaded', function() {
  const table = document.getElementById('sortableTable');

  table.addEventListener('click', function(e) {
    const btn = e.target;
    const row = btn.closest('tr');

    if (btn.classList.contains('move-up')) {
      moveRowUp(row);
    } else if (btn.classList.contains('move-down')) {
      moveRowDown(row);
    }
  });

  function moveRowUp(row) {
    const prevRow = row.previousElementSibling;
    if (prevRow && prevRow.tagName === 'TR') {
      row.parentNode.insertBefore(row, prevRow);
    }
  }

  function moveRowDown(row) {
    const nextRow = row.nextElementSibling;
    if (nextRow && nextRow.tagName === 'TR') {
      row.parentNode.insertBefore(nextRow, row);
    }
  }
});

使用jQuery简化实现

如果项目中已引入jQuery,可以使用更简洁的写法:

实现表格上移下移 js

$(document).ready(function() {
  $('#sortableTable').on('click', '.move-up', function() {
    const row = $(this).closest('tr');
    row.prev().before(row);
  });

  $('#sortableTable').on('click', '.move-down', function() {
    const row = $(this).closest('tr');
    row.next().after(row);
  });
});

注意事项

  • 上移操作需要检查当前行是否已经是第一行
  • 下移操作需要检查当前行是否已经是最后一行
  • 如果表格有固定行(如表头),需要确保操作只针对数据行
  • 移动后可能需要重新绑定事件或更新数据索引

扩展功能

可以为移动操作添加动画效果,提升用户体验:

function moveRowWithAnimation(row, direction) {
  const tbody = row.parentNode;
  const duration = 300;

  if (direction === 'up') {
    const prevRow = row.previousElementSibling;
    if (prevRow) {
      row.style.transition = `transform ${duration}ms`;
      row.style.transform = 'translateY(-100%)';

      setTimeout(() => {
        tbody.insertBefore(row, prevRow);
        row.style.transition = '';
        row.style.transform = '';
      }, duration);
    }
  }
  // 类似实现下移动画...
}

以上方法提供了纯JavaScript和jQuery两种实现方案,可根据项目需求选择合适的方式。

标签: 表格js
分享给朋友:

相关文章

css 制作表格

css 制作表格

基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<th>(表头)和<td>(单元格)标签。例如: <table&…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

h5实现表格样式

h5实现表格样式

实现H5表格样式的方法 使用HTML和CSS创建基础表格 在HTML中,表格通过<table>标签定义,配合<tr>(行)、<td>(单元格)和<th>…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…