js实现table行上下移动,并实现数据的排序
发表于:2023-02-20 22:43:47浏览:1663次
对页面的table表格进行上下移动排序,移动操作不写入数据库,最后对操作统一保存。下面是详细代码:
html代码:
<table class="layui-table layui-table-min">
<tbody>
<tr>
<th width="100">编号</th>
<th width="100">类型</th>
<th>名称</th>
<th width="150">课时时长</th>
<th width="150">操作</th>
</tr>
<tr class="queue">
<td>1001</td>
<td>视频</td>
<td style="text-align:left;">回顾三先天曾合招过的战役,曾多次拯救苦境</td>
<td>5小时12分钟36秒</td>
<td>
<div class="layui-btn-group">
<span class="layui-btn layui-btn-xs question-up">上移</span>
<span class="layui-btn layui-btn-normal layui-btn-xs question-down">下移</span>
<span class="layui-btn layui-btn-xs layui-btn-danger question-del" data-mid="1001">删除</span>
</div>
</td>
</tr>
<tr class="queue">
<td>1002</td>
<td>Word</td>
<td style="text-align:left;">霹雳2021年强档大作《碧血玄黄》登场人物介绍</td>
<td>4小时36分钟56秒</td>
<td>
<div class="layui-btn-group">
<span class="layui-btn layui-btn-xs question-up">上移</span>
<span class="layui-btn layui-btn-normal layui-btn-xs question-down">下移</span>
<span class="layui-btn layui-btn-xs layui-btn-danger question-del" data-mid="1002">删除</span>
</div>
</td>
</tr>
<tr class="queue">
<td>1000</td>
<td>PDF</td>
<td style="text-align:left;">意琦行,倦收天双双黑化,正道战力堪忧</td>
<td>6小时59分钟59秒</td>
<td>
<div class="layui-btn-group">
<span class="layui-btn layui-btn-xs question-up">上移</span>
<span class="layui-btn layui-btn-normal layui-btn-xs question-down">下移</span>
<span class="layui-btn layui-btn-xs layui-btn-danger question-del" data-mid="1000">删除</span>
</div>
</td>
</tr>
</tbody>
</table>
javascript代码:
$('#questionDiv').on('click','.question-del',function(){
let qBox = $(this).parents('.question-item');
$(this).parents('tr').remove();
set_mids(qBox)
})
$('#questionDiv').on('click','.question-up',function(e){
let obj = $(e.target).closest('tr');
let qBox = $(this).parents('.question-item');
tr_pre($(obj[0]),qBox);
})
$('#questionDiv').on('click','.question-down',function(e){
var obj = $(e.target).closest('tr');
let qBox = $(this).parents('.question-item');
tr_next($(obj[0]),qBox);
})
function set_mids(qBox){
let items = qBox.find('.question-del');
let ids = [];
if(items.length>0){
items.each(function(index,item){
ids.push($(item).data('mid'));
})
}else{
qBox.find('table').append('<tr class="question-none"><td colspan="5">请选择章节内容</td></tr>');
}
qBox.find('[name="mids[]"]').val(ids.join(','));
}
function tr_pre(o,qBox) {
var pres = o.prevAll('tr.queue');
if (pres.length > 0) {
var tmp = o.clone(true);
var oo = pres[0];
o.remove();
$(oo).before(tmp);
set_mids(qBox);
}
else{
layer.msg('已经第一个了');
}
}
function tr_next(o,qBox) {
var nexts = o.nextAll('tr.queue');
if (nexts.length > 0) {
var tmp = o.clone(true);
var oo = nexts[0];
o.remove();
$(oo).after(tmp);
set_mids(qBox);
}else{
layer.msg('已经最后一个了');
}
}
推荐文章
- 微软推出VS Code PowerShell的重大更新 PowerShell 引擎的彻底改造
- ThinkPHP6+JS实现大文件分片上传,切片上传
- JavaScript将一个包含父子关系的扁平化数组转换成树形菜单
- js保留两位小数的合理处理方法
- 企业数字化、信息化是发展的必然趋势,常见的企业信息化、数字化系统有哪些?
- Flash已退出历史舞台,未来Web端3D的内容会怎样发展?
- 开源OA 办公系统 — 勾股 OA 4.60.28 发布
- Vue 3.2 刚刚发布!新的单文件组件,响应式性能大幅提升
- javascript判断对象数据类型的方法
- 今晚新剧,碧血玄黄7/8集:金锋动,银剑现,道象阴阳变