jquery实现动态表格编辑

js文件:

//在页面装载成功以后,就给所有的td节点注册鼠标点击事件
$(document).ready(function(){
    var clickfunction = this;
    //1.找到所有的td节点
    var tds = $("td");
    //2.给所有的td节点都这次鼠标点击事件,但是可以根据$(this)来判断点击的到底是
    //众多td节点中的哪一个
    tds.click(tdClick);
});

 //td被点击事件
function tdClick(){
    //0.保存当期的td节点
          var tdNode = $(this);
        //1.取出当前td中的内容保存起来
        var text = tdNode.text();
        //2.清空td里的内容
        tdNode.html("");
        //3.建立一个文本框,也就是input元素节点
        var input = $("<input>");
        //4.设置文本框的值是原先保存起来的td里的值
        input.attr("value",text);
        //4.5让文本框可以监听到键盘按下并弹起的事件,主要用来判断回车键是否被按下

        input.keyup(function(event){
            //获取当前用户按下的键
            //解决不同浏览器获取事件对象的差异
            var myEvent = event || window.event;
            var kcode = myEvent.keyCode;
             //1.判断是否是回车按下,13在JavaScript代码中代表回车键
            if(kcode == 13){
                //2.找到当前事件发生的input节点
                var inputNode = $(this);
               //2.获取当前文本框中的内容

                var text = inputNode.val();
                //2.5 获取该input节点所在的td节点
                var tdNod = inputNode.parent();
            //3.将保存的文本框的内容保存到td中
                tdNod.html(text);
            //4.让td重新拥有点击事件
                tdNod.click(tdClick);
            }

        });

      //5.将文本框添加到td中
        tdNode.append(input);
    //5.5将文本框中的内容高亮显示
    //因为select不是jquery中的方法,而是dom对象的方法,所以要
    //将jquery对象input通过get(0)方法转换成dom对象inputdom
     var inputdom = input.get(0);
    inputdom.select();
        //6.需要清楚tdNode上的click事件
       tdNode.unbind("click");
}

 

html文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jqueryedit.js"></script>
  <title></title>
</head>
<body>
      <table border="1px">
          <tbody>
              <tr>
                  <td>123</td>
                  <td>456</td>
              </tr>
          </tbody>
      </table>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值