jQuery实现可以编辑的表格实例详解【附demo源码下载】


Posted in Javascript onJuly 09, 2016

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

今天小编主要给大家讲解一下,如何利用jQuery+js+css实现表格的编辑。接下来,小编就简单总结一下如何实现这个小例子。

第一步:编写html代码,代码如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>JQuery实例2:可以编辑的表格</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link type="text/css" rel="stylesheet" href="css/editTable.css" />
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/editTable.js"></script>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th colspan="2">鼠标点击表格项就可以编辑</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th>学号</th>
          <th>姓名</th>
        </tr>
        <tr>
          <td>000001</td>
          <td>张三</td>
        </tr>
        <tr>
          <td>000002</td>
          <td>李四</td>
        </tr>
        <tr>
          <td>000003</td>
          <td>王五</td>
        </tr>
        <tr>
          <td>000004</td>
          <td>赵六</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

分析一下上面的代码,我们很容易看出来table中可以包含thead和tbody,表头的内容可以放到th中,我们来运行一下,看看我们的效果:

jQuery实现可以编辑的表格实例详解【附demo源码下载】

从上面的运行效果来看,我们很容易看出来,这个表格的基本轮廓已经显示出来,但是似乎少了些许味道,接着,我们来设置一下表格的样式,我们来编写css的代码,如下所示:

table {
  border: 1px solid black;
  /*修正单元格之间的边框不能合并*/
  border-collapse: collapse;
  width: 400px;
}
table td {
  border: 1px solid black;
  width: 50%;
}
table th {
  border: 1px solid black;
  width: 50%;
}
tbody th {
  background-color: #A3BAE9;
}

分析一下上面的代码,table{}这种写法称作为标签选择器,可以对整个页面所有的table产生影响;table td{}这种写法表示的是table中包含的所有td;可以通过broder-collapse:collapse这种方式来使表格中的单元格边框合并。接着,我们连运行一下,看看运行的效果:

jQuery实现可以编辑的表格实例详解【附demo源码下载】

上述的运行效果,已经非常接近我们需要实现的效果了,但是还是欠点火候,还是不能都编辑,接着,js里面的代码,相应的,在js中我们也要建立两个文件,一个jquery一个editTable,鉴于jquery的代码较多,所以小编已经上传相关资源,有需要的小伙伴可以下载文末链接,接着,我们来编写ueditTable的代码,来给整理页面添加行为能力:

//需要首先通过Javascript来解决内容部分奇偶行的背景色不同
//$(document).ready(function(){
//
//});
//简化的ready写法
$(function(){
  //找到表格的内容区域中所有的奇数行
  //使用even是为了把通过tbody tr返回的所有tr元素中,在数组里面下标是偶数的元素返回,因为这些元素,实际上才是我们期望的tbody里面的奇数行
  $("tbody tr:even").css("background-color","#ECE9D8");
  //我们需要找到所有的学号单元格
  var numTd = $("tbody td:even");
  //给这些单元格注册鼠标点击的事件
  numTd.click(function() {
    //找到当前鼠标点击的td,this对应的就是响应了click的那个td
    var tdObj = $(this);
    if (tdObj.children("input").length > 0) {
      //当前td中input,不执行click处理
      return false;
    }
    var text = tdObj.html();
    //清空td中的内容
    tdObj.html("");
    //创建一个文本框
    //去掉文本框的边框
    //设置文本框中的文字字体大小是16px
    //使文本框的宽度和td的宽度相同
    //设置文本框的背景色
    //需要将当前td中的内容放到文本框中
    //将文本框插入到td中
    var inputObj = $("<input type='text'>").css("border-width","0")
      .css("font-size","16px").width(tdObj.width())
      .css("background-color",tdObj.css("background-color"))
      .val(text).appendTo(tdObj);
    //是文本框插入之后就被选中
    inputObj.trigger("focus").trigger("select");
    inputObj.click(function() {
      return false;
    });
    //处理文本框上回车和esc按键的操作
    inputObj.keyup(function(event){
      //获取当前按下键盘的键值
      var keycode = event.which;
      //处理回车的情况
      if (keycode == 13) {
        //获取当当前文本框中的内容
        var inputtext = $(this).val();
        //将td的内容修改成文本框中的内容
        tdObj.html(inputtext);
      }
      //处理esc的情况
      if (keycode == 27) {
        //将td中的内容还原成text
        tdObj.html(text);
      }
    });
  });
});

运行效果如下:

jQuery实现可以编辑的表格实例详解【附demo源码下载】

完整实例代码点击此处本站下载。

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

Javascript 相关文章推荐
Javascript下的keyCode键码值表
Apr 10 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
使用递归遍历对象获得value值的实现方法
Jun 14 Javascript
javascript js 操作数组 增删改查的简单实现
Jun 20 Javascript
Angularjs的键盘事件的绑定
Jul 27 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
Apr 13 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 Javascript
vue created钩子函数与mounted钩子函数的用法区别
Nov 05 Javascript
微信小程序实现多张图片上传功能
Nov 18 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 #Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 #Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 #Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 #Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 #Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 #Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 #Javascript
You might like
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
php 团购折扣计算公式
2011/11/24 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
介绍一下Linux中的链接
2016/05/28 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
技术负责人任命书
2014/06/05 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书