在我们编辑表格内容时,经常需要将表格内容的位置进行移动,而利用键盘上下键进行移动是十分方便的。

效果如下:

基本原理是:先使用鼠标选中其中的一行,随后使用键盘上下键,通过获取不同的键值区分上移和下移的操作,随后首先交换两行的编号,随后交换两行的内容,保证了两行内容移动而编号不改变。

下面是代码:

function clickA(obj){currentLine=$.trim($(obj).find("td:first-child").html());$('#table1 tr').each(function () { $(this).css("background-color", "white"); });//将所有行变为白色$('#line' + currentLine).each(function () { $(this).css("background-color", "red"); });//将当前行变为红色//获取当前行数
}

以上为鼠标的点击一行的操作,获取当前的行数,以及将当前行变为红色。

<tr id=\"line"+num+"\" onclick='clickA(this)'></tr>

这个表格每一行的点击事件绑定。

 $(document).keydown(function(event){  if(event.keyCode == 38){  //键盘上键up_exchange_line();}else if (event.keyCode == 40){   down_exchange_line();//键盘下键}});

这个是获取扑捉键盘上下键动作,进行不同的操作

function up_exchange_line(index) {if(currentLine != null && currentLine!= " "){nowrow = currentLine;//获取当前行}else if (index != null) {nowrow = $.trim($(index).parent().parent().find("td:first-child").html());}if (nowrow == 0) {alert('请点击一行');return false;//未点击,无当前行要求用户点击一行}if (nowrow <= 1) {alert('已到达顶端!');return false;//上移到顶端后提示}var up = nowrow - 1;//首先交换两行序号$('#line' + up + " td:first-child").html(nowrow);$('#line' + nowrow + " td:first-child").html(up);//变色$('#table1 tr').each(function () { $(this).css("background-color", "white"); });$('#line' + up).css("background-color", "red"); ;//获取两行的内容var upContent = $('#line' + up).html();var currentContent = $('#line' + nowrow).html();//交换内容$('#line' + up).html(currentContent);$('#line' + nowrow).html(upContent);currentLine = up;//改变当前行,为继续上移做准备}

这个上移的方法,首先获取当前行数,随后获取上一行的行数,首先进行序号的交换,随后将当前行的红色变至上一行,随后交换所有的内容,最后更新当前行。这样保证了,内容和当前所在行会跟这个键盘上键而移动而序号可以保持不变。

function down_exchange_line(index) {if(currentLine != null && currentLine != " "){nowrow = currentLine;}else if (index != null) {nowrow = $.trim($(index).parent().parent().find("td:first-child").html());}if (nowrow == 0) {alert('请选择一项!');return false;}maximum=$("#table1").find("tr").length ;if (nowrow >= maximum-1) {alert('已经是最后一项了!');return false;}var dS = parseInt(nowrow) + 1;$('#line' + dS + " td:first-child").html(nowrow);$('#line' + nowrow + " td:first-child").html(dS);//变色$('#table1 tr').each(function () { $(this).css("background-color", "white"); });$('#line' + dS).css("background-color", "red"); //获取两行的内容var nextContent = $('#line' + dS).html();var currentContent = $('#line' + nowrow).html();//交换内容$('#line' + dS).html(currentContent);$('#line' + nowrow).html(nextContent);if(dS>maximum-1){currentLine=dS-1;}else{currentLine = dS;}}

同理,下降也是使用相同的方法,只不过是向下交换数据。

这样基于jQuery使用键盘上下键交换表格内容的操作就完成了

如果各位有什么疑问,意见,不同的想法欢迎留言,欢迎交流。

本人本科软件工程学生党一枚,如有错误欢迎指正,欢迎交流。

jQuery 利用键盘上下键移动表格内容相关推荐

  1. 全局搜索利用键盘上下键切换选中内容

    最近开发一个桌面端的全局搜索,利用键盘上下键切换选中内容,类似于钉钉一样的效果,如图: html: <div class="rong-search-main">< ...

  2. jquery 序列化表格内容为字符串(serialize)

    ajax - serialize() 方法-遍历form进行AJAX提交,序列表表格内容为字符串. html: <form><select name="single&quo ...

  3. excel打印预览在哪里_别再浪费A4纸了,Excel按下这个键,一张纸可以打印全部表格内容...

    我们在工作和生活中,经常需要打印Excel表格,可是有时表格太宽了,无法打印在一张A4纸上,今天就来教大家几种方法,只需按下一个键,就可以打印全部表格内容. 一.表格打印一页 1.设置分页 首先点击[ ...

  4. 利用Karabiner和键盘修饰键修改MAC键盘,实现打字时双手不离开字母和数字区

    文章目录 第一步 第二步 第三步 其他 第一步 下载Karabiner软件并安装,在Simple modifications标签页中设置如下,且Mac系统设置中键盘修饰键设置如下. 第二步 代码转自h ...

  5. jQuery获取表格内容

    一个表格往往是从后台获取数据,因此表格的内容往往只有孤立的tr.td标签,而不包含id.class.name这些可以直接被选择器识别的标签:而且从后台获取的数据往往是不断发生变化的,给表格加上id等标 ...

  6. vue+elementui系统利用Export2Excel.js将表格内容导出到excel,并设置表头文字水平垂直居中

    写在前面:这是纯前端导出,导出的表格是二级表头,内容是四级单元格(单元格内有四小格),这几个点学会之后应该能适应大部分导出excel的需求了.本次功能记录真实有效.对于之前没接触过导出excel需求的 ...

  7. JQuery实例:可以编辑的表格

    HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www ...

  8. html 按下和松开事件,JQuery通过键盘控制键盘按下与松开触发事件

    JQuery通过键盘控制键盘按下与松开触发事件 效果图: HTML部分: 首先设置几个盒子,用来构建这个页面的大致框架. 给盒子相应的类名以及id,方便css的布局以及JQuery的获取. 在盒子内放 ...

  9. 利用dos管道命令获取屏幕内容_汇编语言--常用DOS功能

    常用的DOS功能调用 1.键盘输入并显示(1号功能调用) 格式: MOV AH, 01HINT 21H 功能:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符.如果按下的是Ctr ...

最新文章

  1. 坑爹的微软官方文档:SQL无人值守安装
  2. 直接通过OptionalAttribute, DefaultParameterValueAttribute定义缺省参数
  3. UIbutton 圆角和边线
  4. gj13 asyncio并发编程
  5. 程序员新人怎样在复杂代码中找 bug?
  6. Java中常用的6种排序算法详细分解
  7. 马斯克抱怨 GPT-3 不够 Open,开源语言模型库来了你要不要学?
  8. 浏览器设备信息UserAgent查询
  9. 浅析PCIe链路LTSSM状态机
  10. android 下载目录,android – FileProvider – 从下载目录中打开文件
  11. Win10 如何将40G大文件极致压缩
  12. java语言算阴影梯形面积_例1.2 在梯形中阴影部分面积是150平方厘米,求梯形面积。(《信息学奥赛一本通》)...
  13. log4j2日志配置颜色
  14. 【VOLTE】【SRVCC】【1】 VOLTE SRVCC(SRVCC TO 3GPP)
  15. linux rstudio 中文乱码,谈谈R中的乱码(一)
  16. 为什么现在很多人在用影刀,影刀突然火起来了?
  17. PMP考试要学多久,考试难吗?
  18. Centos8怎么进行复位清屏? Centos8终端复位清屏的技巧
  19. 关于地方美食的HTML网页设计——地方美食介绍网站 HTML顺德美食介绍 html网页制作代码大全
  20. 枪林弹雨 服务器维护中,又维护?

热门文章

  1. 我待过的最坑的公司,强行996,溜溜球了
  2. 初探领域驱动设计(Domain Driven Design)
  3. SQL脚本创建级联_【新年跳槽必备】2020最新(EF/Sql专题)面试题 速领!
  4. 三大运营商的网络制式
  5. BTM主题模型构建及困惑度计算
  6. strocli64 源码_storcli64和smartctl定位硬盘的故障信息
  7. RK3399芯片规格书,RK3399参考设计方案
  8. cordova编译crosswalk-webview插件报错的处理办法
  9. iOS:且说委托代理
  10. 基于显扬科技3D视觉相机的芯片外观检测系统