游乐游手机版
首页/前端开发/文章详情

jQuery实现表格间选中行精准移动(非整表搬运)

时间:2026-07-20 06:54
基于复选框选择,精准将HTML表格中已勾选行移入另一表格,避免误删整表结构,提供健壮可复用的jQuery方案,适用于权限分配、字段映射等双列表选择器场景。
本文全面解析如何基于复选框选中状态,将 HTML 表格中已勾选的 数据行精确迁移至另一张表格,杜绝整表结构误删风险,提供稳定可靠、可复用的 jQuery 表格行移动解决方案。

在实际项目开发中,双列表选择器(例如权限配置、字段映射等应用场景)几乎无处不在。用户勾选左侧表格中的条目,点击对应的操作按钮(如 >、>>、<、<<)即可将数据迁移至右侧,反之亦然。操作逻辑看似简单,但许多初版代码容易陷入一个常见误区:直接使用 $("#tblgroup1").remove() 配合 .append(html()) 来搬运数据行。这种写法存在严重隐患——它会直接摧毁整张表格的 DOM 结构,导致事件绑定失效、动态状态丢失、ID 重复冲突,甚至忽略选中状态直接整表搬运,最终造成业务逻辑彻底崩溃。

正确的做法应当仅操作被选中的 元素本身,而 jQuery 强大的链式定位能力恰好能够轻松胜任这一需求。

✅ 正确实现逻辑(以“右移选中项”为例)

function Swapselections(btn) {
  const $btn = $(btn);
  const text = $btn.text().trim();
  if (text === '>>') {
    // 将 tblgroup1 中所有已勾选行移动到 tblgroup2
    const $selectedRows = $('#tblgroup1 input:checked').closest('tr');
    $('#tblgroup2').append($selectedRows);
  } else if (text === '>') {
    // 单向右移:仅移动当前选中行(同上,语义更明确)
    $('#tblgroup1 input:checked').closest('tr').appendTo('#tblgroup2');
  } else if (text === '<') {
    // 单向左移
    $('#tblgroup2 input:checked').closest('tr').appendTo('#tblgroup1');
  } else if (text === '<<') {
    // 全量左移:tblgroup2 所有行移回 tblgroup1
    $('#tblgroup2 tr').appendTo('#tblgroup1');
  }
}

来源:https://www.php.cn/faq/2812390.html
上一篇编程实现逐个点击元素并等待动态内容加载完成 下一篇JavaScript多标签AND逻辑筛选实现方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CSS星空背景遮挡页面链接的有效修复方法
前端开发 · 2026-07-21

CSS星空背景遮挡页面链接的有效修复方法

CSS星空背景元素因绝对定位与高z-index覆盖视口,导致底层链接的鼠标事件被屏蔽。为纯装饰层添加`pointer-events:none`属性,可透传鼠标事件,恢复链接交互,且不影响动画渲染与性能表现。这样既保留视觉装饰,又确保用户正常点击底层链接。

组合键Ctrl+C触发不同音符的播放方法
前端开发 · 2026-07-21

组合键Ctrl+C触发不同音符的播放方法

通过监听键盘事件并检测修饰键状态,实现同一字母键在不同组合下播放不同音符。需注意使用event ctrlKey正确拼写,调用preventDefault阻止默认行为,统一转小写,并考虑重复触发过滤。可扩展的键映射方案便于维护。

Vue与Three.js实现人物奔跑3D场景
前端开发 · 2026-07-21

Vue与Three.js实现人物奔跑3D场景

基于Vue与Three js构建人物奔跑场景:人物加载GLTF骨骼动画原地循环跑步,巨型草坪平面持续向后平移,营造无限奔跑错觉,并添加线性白雾增强空间层次,代码工程化实现。

CSS :has()父选择器根据图片是否存在调整文字宽度
前端开发 · 2026-07-21

CSS :has()父选择器根据图片是否存在调整文字宽度

聊聊` card:has(img)`和` card:not(:has(img))`的真实用法 这两个组合是目前最稳定、纯粹基于DOM结构进行判断的方案。适用场景非常明确: * ` card:has(img) text`:当卡片里有``标签时,文字容器收窄,比如设为`width: 70%`,

正确使用回调函数实现链式调用多个函数
前端开发 · 2026-07-21

正确使用回调函数实现链式调用多个函数

本文深入解析回调函数链式调用的常见误区和正确用法,通过修复 a → b → c 顺序执行失败的典型问题,阐明回调传递的核心本质:传递函数引用而非调用结果,并提供可运行的代码示例与关键注意事项,帮助开发者彻底掌握回调函数链式调用写法。 在实际项目开发中,利用回调函数实现 a → b → c 这样的顺序