当前位置:首页 > JavaScript

实现表格上移下移 js

2026-04-05 00:16:34JavaScript

表格行上移下移实现方法

核心思路
通过DOM操作交换相邻行的位置,结合事件监听实现交互效果。以下是两种常见实现方式:

方法一:纯JavaScript实现

// 获取表格对象
const table = document.getElementById('sortable-table');

// 上移函数
function moveUp(button) {
  const row = button.closest('tr');
  const prevRow = row.previousElementSibling;
  if (prevRow) {
    row.parentNode.insertBefore(row, prevRow);
  }
}

// 下移函数
function moveDown(button) {
  const row = button.closest('tr');
  const nextRow = row.nextElementSibling;
  if (nextRow) {
    row.parentNode.insertBefore(nextRow, row);
  }
}

HTML结构示例

实现表格上移下移 js

<table id="sortable-table">
  <tr>
    <td>内容1</td>
    <td>
      <button onclick="moveUp(this)">↑</button>
      <button onclick="moveDown(this)">↓</button>
    </td>
  </tr>
  <!-- 更多行... -->
</table>

方法二:jQuery简化版

$('.move-up').click(function(){
  const row = $(this).closest('tr');
  row.prev().before(row);
});

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

注意事项

实现表格上移下移 js

  • 边界检测:首行不能上移,末行不能下移
  • 性能优化:大数据量表格建议使用虚拟滚动
  • 视觉反馈:可添加过渡动画增强用户体验

扩展功能实现

// 添加行高亮效果
function highlightRow(row) {
  row.style.backgroundColor = '#ffeeba';
  setTimeout(() => {
    row.style.backgroundColor = '';
  }, 500);
}

// 改进后的移动函数
function enhancedMove(button, direction) {
  const row = button.closest('tr');
  const target = direction === 'up' ? row.previousElementSibling : row.nextElementSibling;

  if (target) {
    row.parentNode.insertBefore(
      direction === 'up' ? row : target,
      direction === 'up' ? target : row
    );
    highlightRow(row);
  }
}

实际应用建议

  1. 为操作按钮添加CSS样式提高可视性
  2. 移动后保持行的选中状态
  3. 考虑添加键盘快捷键支持
  4. 移动后触发数据同步到后端

以上代码可根据实际需求调整,关键点是正确使用DOM的insertBefore方法实现行位置交换。

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

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

vue实现导出表格

vue实现导出表格

Vue 实现导出表格的方法 使用 xlsx 库导出 Excel 安装 xlsx 库 npm install xlsx 在 Vue 组件中引入 xlsx import * as XLSX from…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…