基于jQuery实现表格的查看修改删除


Posted in Javascript onAugust 01, 2016

效果图:

基于jQuery实现表格的查看修改删除

HTML:

<table id="table">
    <tr>
      <th>姓名</th>
      <th>年龄</th>
      <th>职位</th>
      <th>薪资</th>
      <th>操作</th>
    </tr>
    <tr>
      <td>张三</td>
      <td>23</td>
      <td>前端工程师</td>
      <td>10000</td>
      <td>
        <a href="###" class="view">查看</a>
        <a href="#" class="del">删除</a>
        <a href="#" class="modify">修改</a>
      </td>
    </tr>
    <tr>
      <td>李四</td>
      <td>33</td>
      <td>JAVA程序猿</td>
      <td>12000</td>
      <td>
        <a href="#" class="view">查看</a>
        <a href="#" class="del">删除</a>
        <a href="#" class="modify">修改</a>
      </td>
    </tr>
    <tr>
      <td>王五</td>
      <td>25</td>
      <td>美工</td>
      <td>9000</td>
      <td>
        <a href="#" class="view">查看</a>
        <a href="#" class="del">删除</a>
        <a href="#" class="modify">修改</a>
      </td>
    </tr>
  </table>
  <div class="popDiv">
    <p><strong>姓名:</strong><span></span></p>
    <p><strong>年龄:</strong><span></span></p>
    <p><strong>职位:</strong><span></span></p>
    <p><strong>薪资:</strong><span></span></p>
    <a href="#" class="close">关闭</a>
  </div>
  <div class="modifyDiv">
    <p><strong>姓名:</strong><input type="text"></p>
    <p><strong>年龄:</strong><input type="text"></p>
    <p><strong>职位:</strong><input type="text"></p>
    <p><strong>薪资:</strong><input type="text"></p>
    <a href="#" class="yes">确定</a>
    <a href="#" class="close">取消</a>
  </div>

CSS:

#table{
    border:1px solid #ccc;
    border-collapse:collapse;
    width:600px;}
  #table tr{height:30px;}
  #table tr:nth-child(2n){background-color:#eee;}
  #table tr th, td{border:1px solid #ccc;text-align: center;

  }
  td a{
    color:red;
  }
  .popDiv{
    width:500px;
    border:1px solid purple;
    position:absolute;
    top:50%;left:50%;
    margin-left:-250px;
    margin-top:-100px;
    background:#fff;
    padding:10px;
    display:none;
    z-index:3;
    border:1px solid #ccc;
  }
  .popDiv p{border:1px solid #ccc;padding:5px;}
  .modifyDiv{
    width:500px;
    border:1px solid purple;
    position:absolute;
    top:50%;left:50%;
    margin-left:-250px;
    margin-top:-100px;
    background:#fff;
    padding:10px;
    display:none;
    z-index:3;
    border:1px solid #ccc;
  }
  .modifyDiv p{border:1px solid #ccc;padding:5px;}

JQ:

$(function(){
    //查看
    $("td a.view").click(function(){
      /**添加遮罩层*/
      var maskHeight=$(document).height();
      var maskWidth=$(document).width();
      $("<div class='mask'></div>").appendTo($("body"));
      $("div.mask").css({
        "opacity":0.4,
        "background":"#000",
        "position":"absolute",
        "left":0,
        "top":0,
        "width":maskWidth,
        "height":maskHeight,
        "z-index":2
      })
      var arr=[];
      $(this).parent().siblings().each(function(){
        arr.push($(this).text());
      });
      $(".popDiv").show().children().each(function(i){
        $(this).children("span").text(arr[i]);
      });
      $(".close").click(function(){
        $(this).parent().hide();
        $(".mask").remove();
      });
    });
    //删除
    $("a.del").click(function(){
      $(this).parents("tr").remove();
    });
    /*修改功能*/
  })

//在页面装载时,让所有的td都拥有点击事件
$(document).ready(function(){
  //找到所有td节点
  var tds = $("td").not(":last-child");
  //给所有的td节点增加点击事件
  tds.dblclick(tdclick);
});

function tdclick(){
  var clickfunction = this;
  //0,获取当前的td节点
  var td = $(this);
  //1,取出当前td中的文本内容保存起来
  var text = $(this).text();
  //2,清空td里边内同
  td.html("");
  //3,建立一个文本框,也就是建一个input节点
  var input = $("<input>");
  //4,设置文本框中值是保存起来的文本内容
  input.attr("value",text);
  //4.5让文本框可以相应键盘按下的事件
  input.keyup(function(event){
    //记牌器当前用户按下的键值
    var myEvent = event || window.event;//获取不同浏览器中的event对象
    var kcode = myEvent.keyCode;
    //判断是否是回车键按下
    if(kcode == 13){
      var inputnode = $(this);
      //获取当前文本框的内容
      var inputext = inputnode.val();
      //清空td里边的内容,然后将内容填充到里边
      var tdNode = inputnode.parent();
      tdNode.html(inputext);
      //让td重新拥有点击事件
      tdNode.click(tdclick);
    }
  }).blur(function(){
      var inputnode = $(this);
      //获取当前文本框的内容
      var inputext = inputnode.val();
      //清空td里边的内容,然后将内容填充到里边
      var tdNode = inputnode.parent();
      tdNode.html(inputext);
      //让td重新拥有点击事件
      tdNode.click(tdclick);
    });
  //5,把文本框加入到td里边去
  td.append(input);
  //5.5让文本框里边的文章被高亮选中
  //需要将jquery的对象转换成dom对象
  var inputdom = input.get(0);
  inputdom.select();

  //6,需要清楚td上的点击事件
  td.unbind("click");
}

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

Javascript 相关文章推荐
多种方法实现360浏览器下禁止自动填写用户名密码
Jun 16 Javascript
jquery仅用6行代码实现滑动门效果
Sep 07 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
Aug 02 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 Javascript
javascript回调函数的概念理解与用法分析
May 27 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
小程序实现留言板
Nov 02 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
jQuery自制提示框tooltip改进版
Aug 01 #Javascript
Three.js学习之文字形状及自定义形状
Aug 01 #Javascript
jQuery实现的省市县三级联动菜单效果完整实例
Aug 01 #Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 #Javascript
基于原生JS实现图片裁剪
Aug 01 #Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 #Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 #Javascript
You might like
通过html表格发电子邮件
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
高中国旗下的演讲稿
2014/08/28 职场文书
就业协议书
2014/09/12 职场文书
爱心捐款活动总结
2015/05/09 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
Python3的进程和线程你了解吗
2022/03/16 Python
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
MySQL 数据库范式化设计理论
2022/04/22 MySQL