基于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 相关文章推荐
Grid得到选择行数据的方法总结
Jan 17 Javascript
js中如何把字符串转化为对象、数组示例代码
Jul 17 Javascript
javascript实现Email邮件显示与删除功能
Nov 21 Javascript
jQuery Easyui实现左右布局
Jan 26 Javascript
理解javascript对象继承
Apr 17 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
Vue隐藏显示、只读实例代码
Jul 18 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
一篇文章带你浅入webpack的DLL优化打包
Feb 20 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
javaScript Array api梳理
Mar 31 Javascript
教你一步步实现一个简易promise
Nov 02 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
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
php图片添加水印例子
2016/07/20 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
Gird事件机制初级读本
2007/03/10 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
python中的set实现不重复的排序原理
2018/01/24 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
2014年幼儿园园务工作总结
2014/12/05 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
Python Django项目和应用的创建详解
2021/11/27 Python