JQuery实现可直接编辑的表格


Posted in Javascript onApril 16, 2015

本文实例讲述了JQuery实现可直接编辑的表格。分享给大家供大家参考。具体分析如下:

功能:

创建一个表格,用户单击某个单元格后,可以直接修改单元格文本。
在编辑状态下,用户可按回车键确认修改,按ESC键撤销修改。

效果如下图:

JQuery实现可直接编辑的表格

思路:

当用户点击某个单元格后,立即向该单元格内插入一个文本框,将它的宽、高都设置成与单元格相的数值。用户确认输入后,清空该单元格内的所有HTML代码,然后把内容设置为用户刚刚输入的文本。

HTML代码:

<table align="center"> 
 <tr> 
 <td>学号</td> 
 <td>姓名</td> 
 </tr> 
 <tr> 
 <td>001</td> 
 <td>dog</td> 
 </tr> 
 <tr> 
 <td>002</td> 
 <td>cat</td> 
 </tr> 
 <tr> 
 <td>003</td> 
 <td>pig</td> 
 </tr> 
</table>

JavaScript代码:

$(function(){ 
 $("td").click(function(event){ 
  //td中已经有了input,则不需要响应点击事件
  if($(this).children("input").length > 0) 
   return false; 
  var tdObj = $(this); 
  var preText = tdObj.html();
  //得到当前文本内容 
  var inputObj = $("<input type='text' />");
  //创建一个文本框元素 
  tdObj.html(""); //清空td中的所有元素 
  inputObj 
   .width(tdObj.width())
   //设置文本框宽度与td相同 
   .height(tdObj.height()) 
   .css({border:"0px",fontSize:"17px",font:"宋体"})
   .val(preText) 
   .appendTo(tdObj)
   //把创建的文本框插入到tdObj子节点的最后
   .trigger("focus")
   //用trigger方法触发事件 
   .trigger("select"); 
  inputObj.keyup(function(event){ 
   if(13 == event.which)
   //用户按下回车 
   { 
    var text = $(this).val(); 
    tdObj.html(text); 
   } 
   else if(27 == event.which)
   //ESC键 
   { 
    tdObj.html(preText); 
   } 
  }); 
  //已进入编辑状态后,不再处理click事件 
  inputObj.click(function(){ 
   return false; 
  }); 
 }); 
});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
在jQuery ajax中按钮button和submit的区别分析
Oct 07 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
jQuery操作Select的Option上下移动及移除添加等等
Nov 18 Javascript
JavaScript简单表格编辑功能实现方法
Apr 16 Javascript
jquery if条件语句的写法
May 19 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
深入浅析nuxt.js基于ssh的vue通用框架
May 21 Javascript
js+css3实现简单时钟特效
Sep 13 Javascript
JS中捕获console.log()输出的方法
Apr 16 #Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 #Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 #Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 #Javascript
JavaScript动态修改背景颜色的方法
Apr 16 #Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 #Javascript
JavaScript三元运算符的多种使用技巧
Apr 16 #Javascript
You might like
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
JS获取URL中的参数数据
2013/12/05 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
loading动画特效小结
2017/01/22 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
学前端,css与javascript重难点浅析
2020/06/11 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
详解vue v-model
2020/08/31 Javascript
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python调用C++程序的方法详解
2017/01/24 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
解决python "No module named pip" 的问题
2018/10/13 Python
python实现二维插值的三维显示
2018/12/17 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
中专生自我鉴定
2013/12/17 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
助学感谢信范文
2015/01/21 职场文书
暑期社会实践个人总结
2015/03/06 职场文书