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 相关文章推荐
document.all的一个比较完整的总结及案例
Jan 31 Javascript
JavaScript之underscore_动力节点Java学院整理
Jul 03 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
vue父组件向子组件(props)传递数据的方法
Jan 02 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
详解redux异步操作实践
Aug 15 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
Sep 29 Javascript
使用react render props实现倒计时的示例代码
Dec 06 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
Jan 18 Javascript
JavaScript图像放大镜效果实现方法详解
Jun 28 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 各种应用乱码问题的解决方法
2010/05/09 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
JavaScript中的事件处理
2008/01/16 Javascript
Javascript 遍历对象中的子对象
2009/07/03 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
centos系统升级python 2.7.3
2014/07/03 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
行政管理专业推荐信
2013/11/02 职场文书
社区工作感言
2014/02/21 职场文书
工程安全员岗位职责
2014/03/09 职场文书
生产助理岗位职责
2014/06/18 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
教师学期个人总结
2015/02/11 职场文书
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android