jQuery利用键盘上下键移动表格内容

本文实例为大家分享了jQuery利用键盘上下键移动表格内容的具体代码,供大家参考,具体内容如下

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

效果如下:

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

下面是代码:

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使用键盘上下键交换表格内容的操作就完成了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】

    本文实例讲述了jQuery实现通过方向键控制div块上下左右移动的方法.分享给大家供大家参考,具体如下: 在CSS中当DOM元素的position属性为absolute或relative时,我们可以通过改变这个元素的left和top属性的具体值来控制元素在页面中显现的位置. 利用上述属性,我们可以简单实现一个元素在页面中的移动效果,这里我们采用JQuery的animate方法来实现动画效果,利用keydown监听方向键按下的事件(这里采用keydown而不是keyup,是为了能够在方向键被一直按

  • jQuery实现用方向键控制层的上下左右移动

    题目:按下方向键时,使层向相应的方向平滑移动20像素:四个方向键的键码分别是37(左).38(上).39(右)和40(下). 然后我写了下面的代码: $div就是要移动的层,且它的position已在CSS中设为relative.瞄一眼好像没什么问题,运行之后发现下面的问题: 1.按了向下之后,再按向上没有反应. 2.按了向右之后,再按向左没有反应. 后来经一网友点拨,恍然大悟: 当按了向下的时候,top值为20px,这时候再按向上,从Firebug可以看出此时的bottom值也是20px,而层

  • jQuery利用键盘上下键移动表格内容

    本文实例为大家分享了jQuery利用键盘上下键移动表格内容的具体代码,供大家参考,具体内容如下 在我们编辑表格内容时,经常需要将表格内容的位置进行移动,而利用键盘上下键进行移动是十分方便的. 效果如下: 基本原理是:先使用鼠标选中其中的一行,随后使用键盘上下键,通过获取不同的键值区分上移和下移的操作,随后首先交换两行的编号,随后交换两行的内容,保证了两行内容移动而编号不改变. 下面是代码: function clickA(obj){             currentLine=$.trim(

  • 利用vue和element-ui设置表格内容分页的实例

    html代码 因为我写在template中,也就是新建了组建中,贴出代码. <el-pagination small layout="prev, pager, next" :total="total" @current-change="current_change"> </el-pagination> 代码中,small代表是否使用小型分页样式 layout代表组件布局,子组件名用逗号分隔 属性: total代表总条目数

  • jQuery 利用ztree实现树形表格的实例代码

    最近公司的项目中要做一个树形表格,因为之前一直在用ztree实现基本的树形结构,理所当然的首先想到利用ztree来做. 网上找了一下别人做的树形表格,有使用ztree的,也有使用treeTable的,但效果都不太好,于是参考使用ztree的做法自己做了一个,贴出来供大家参考,请看注释说明,效果如下所示. <!DOCTYPE HTML> <html> <head> <link href="https://cdn.bootcss.com/zTree.v3/3

  • JQuery表格内容过滤的实现方法

    复制代码 代码如下: [html]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equ

  • jquery表格内容筛选实现思路及代码

    复制代码 代码如下: 筛选:<input type="text" id="sea" /> <table width="100%" id="se"> <thead> <tr><th></th><th>姓名</th><th>性别</th><th>地址</th></tr> <

  • 基于jQuery实现表格内容的筛选功能

    废话不多说了,直接给大家贴关键代码了.具体代码如下所示: <html> <head> <title>表格内容的筛选</title> <link type="text/css" rel="stylesheet" href="css/contains.css" /> <style type="text/css"> table { width: 50%; bor

  • jquery利用event.which方法获取键盘输入值的代码

    实例 显示按了哪个键: $("input").keydown(function(event){ $("div").html("Key: " + event.which); }); 亲自试一试 定义和用法 which 属性指示按了哪个键或按钮. 语法 event.which参数 描述 event 必需.规定要检查的事件.这个 event 参数来自事件绑定函数. jQuery丢弃了标准的 button 属性采用 which,这有点让人费解. whic

  • jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击

    本文实例介绍了四种jquery禁用多种功能的方法 1.禁用F5刷新jQuery实例代码 F5具有刷新网页的功能,可能有时候需要禁用此功能,下面就通过代码实例介绍一下如何实现此功能. 代码如下: $(document).ready(function(){ $(document).bind("keydown",function(e){ var e=window.event||e; if(e.keyCode==116){ e.keyCode = 0; return false; } }) }

  • JQuery实现可直接编辑的表格

    本文实例讲述了JQuery实现可直接编辑的表格.分享给大家供大家参考.具体分析如下: 功能: 创建一个表格,用户单击某个单元格后,可以直接修改单元格文本. 在编辑状态下,用户可按回车键确认修改,按ESC键撤销修改. 效果如下图: 思路: 当用户点击某个单元格后,立即向该单元格内插入一个文本框,将它的宽.高都设置成与单元格相的数值.用户确认输入后,清空该单元格内的所有HTML代码,然后把内容设置为用户刚刚输入的文本. HTML代码: <table align="center">

  • jquery利用拖拽方式在图片上添加热链接

    本文实例讲述了jquery利用拖拽方式在图片上添加热链接的实现过程,分享给大家供大家参考.具体如下: 运行效果截图如下: 项目的需求,要在一张图片上加不同的链接,比如说,图片是一个套房,里面有沙发,茶几,酒柜,电视柜等,然后在这些物件上加一个超链接,点击后打开相关产品的介绍. 用jquery写了一个在图片添加锚点的功能,实现的原理:一个文本框写入标题,一个文本框写链接,一个添加按钮,一个编辑按钮,当写好内容后点击添中添加,便会在图片的上方出现一个P标签,然后按着鼠标左键拖拽该标签放到相应的地方松

随机推荐