基于jQuery实现可编辑的表格


Posted in jQuery onDecember 11, 2019

前言

我们知道jQuery是一个轻便的JavaScript框架,里面封装了系统和程序常用到的一些方法,利用CSS、HTML可以将这些内容运用起来,做出各式各样好看的界面,下面小编使用jQuery实现了一个“可编辑的表格”的例子。

代码加说明

一、HTML代码

1.使用<thead></thead>实现标头;

2.一个table中可以包含thead和tbody

3.表头的内容可以放到th中。

<!DOCTYPE HTML>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>JQuery实战2-可编辑的表格</title>
 <link href="css/editTable.css" type="text/css" rel="stylesheet" />
 <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>001</td>
  <td>周星驰</td> 
  </tr> 
 <tr>
  <td>002</td>
  <td>星女郎</td> 
  </tr> 
 <tr>
  <td>003</td>
  <td>周润发</td> 
 </tr>
 <tr>
  <td>004</td>
  <td>赌神</td> 
 </tr>
 </tbody>
 </table>
</body>
</html>

基于jQuery实现可编辑的表格

二、CSS代码

1.table{}称作标签选择器,可以对整个页面所有table产生影响;

2.table td{} 表示table中包含的所有td;

3.border_collapse:collape 使表格中的单元格的边框合并

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

三、JavaScript文件代码

1.用来解决奇偶行背景色不同;

2.$(function(){})与$(documnet).ready(function(){})等价;

  $("tbody tr")  可以返回tbody中所有tr节点;

  $("tbody tr:even") 可以返回tbody中所有索引值是偶数的tr节点;

3.$()方法的参数如果是一个DOM对象时,这个方法相当于把DOM对象转换成jQuery对象;

   $()方法的参数如果是一段正确的HTML文本,则可以创建一个DOM节点,并包装成jQuery对象。

$(function(){ 
 //找到表格偶数行
 //odd是数组中下标为奇数的项,even是下标为偶数的项
 $("tbody tr:even").css("background-color","#ECE9D8");
 //找到所有学号的单元格
 var numId=$("tbody td:even");
 //给这些单元格注册点击事件
 numId.click(function(){
  
 //找到当前鼠标点击的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"))
 .css("font",tdObj.css("font"))
 .val(text)
 .appendTo(tdObj); 
 //文本框插入后被选中
 //inputObj.get(0).select();
 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情况,
  //将td的内容还原成text
  if(keycode==27){
  tdObj.html(text);
  }
 
 });
 
  });
 
});

小结

关于jQuery的学习,不只是停留在例子上面,我们还要从中不断地深入,理解并能够运用起来。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery+pjax简单示例汇总
Apr 21 jQuery
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
jQuery操作css样式
May 15 jQuery
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
jquery实现动态改变css样式的方法分析
May 27 jQuery
jQuery zTree插件快速实现目录树
Aug 16 jQuery
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jQuery实现可编辑的表格
Dec 11 #jQuery
jQuery实现验证用户登录
Dec 10 #jQuery
jquery实现弹窗(系统提示框)效果
Dec 10 #jQuery
jQuery实现消息弹出框效果
Dec 10 #jQuery
jQuery实现弹出层效果
Dec 10 #jQuery
JQuery样式与属性设置方法分析
Dec 07 #jQuery
JQuery常用简单动画操作方法回顾与总结
Dec 07 #jQuery
You might like
php启用zlib压缩文件的配置方法
2013/06/12 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
Mac下安装vue
2018/04/11 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
Python自动发邮件脚本
2017/03/31 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
python 为什么说eval要慎用
2019/03/26 Python
python中安装django模块的方法
2020/03/12 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
家长评语大全
2014/01/22 职场文书
项目总经理岗位职责
2014/02/14 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL