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 相关文章推荐
Firebug 字幕文件JSON地址获取代码
Oct 28 Javascript
jQuery 常见开发使用技巧总结
Dec 26 Javascript
关于可运行代码无法正常执行的使用说明
May 13 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
基于JavaScript自定义构造函数的详解说明
Apr 24 Javascript
js正则表达式的使用详解
Jul 09 Javascript
Node.js重新刷新session过期时间的方法
Feb 04 Javascript
jQuery中JSONP的两种实现方式详解
Sep 26 Javascript
jQuery插件ajaxFileUpload异步上传文件
Oct 19 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
Jun 27 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
elementUI同一页面展示多个Dialog的实现
Nov 19 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 4.2书写安全的脚本
2006/10/09 PHP
php中常用编辑器推荐
2007/01/02 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
php 类自动载入的方法
2015/06/03 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
PHP7 windows支持
2021/03/09 PHP
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
js实现购物车功能
2018/06/12 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
中国最大的名表商城:万表网
2016/08/29 全球购物
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
小学生自我鉴定
2013/10/12 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
机动车登记业务委托书
2014/10/08 职场文书
贷款工作证明模板
2015/06/12 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
Oracle 多表查询基本语法实例
2022/04/18 Oracle