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 相关文章推荐
Prototype Date对象 学习
Jul 12 Javascript
模仿JQuery sortable效果 代码有错但值得看看
Nov 05 Javascript
js parseInt(&quot;08&quot;)未指定进位制问题
Jun 19 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
js实现文本框输入文字个数限制代码
Dec 25 Javascript
深入研究React中setState源码
Nov 17 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
vue-router 前端路由之路由传值的方式详解
Apr 30 Javascript
手把手教您实现react异步加载高阶组件
Apr 07 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下载文件的详解
2013/06/02 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
一端时间轮换的广告
2006/06/26 Javascript
Valerio 发布了 Mootools
2006/09/23 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
Python 除法小技巧
2008/09/06 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
电大毕业自我鉴定
2014/02/03 职场文书
四年级语文教学反思
2014/02/05 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
学生吸烟检讨书
2014/09/14 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
中秋节慰问信
2015/02/15 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript