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 相关文章推荐
js 省地市级联选择
Feb 07 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
Jan 13 Javascript
javascript中match函数的用法小结
Feb 08 Javascript
javascript变量声明实例分析
Apr 25 Javascript
js数组如何添加json数据及js数组与json的区别
Oct 27 Javascript
JS继承之借用构造函数继承和组合继承
Sep 07 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
May 09 Javascript
js在HTML的三种引用方式详解
Aug 29 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 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
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
班长岗位职责
2013/11/10 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
新学期班主任寄语
2014/01/18 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
毕业生评语大全
2015/01/04 职场文书
老人与海读书笔记
2015/06/26 职场文书
幼儿园六一主持词
2015/06/30 职场文书
大学运动会加油稿
2015/07/22 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书