基于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 相关文章推荐
JS 自动完成 AutoComplete(Ajax 查询)
Jul 07 Javascript
javascript innerText和innerHtml应用
Jan 28 Javascript
JS比较2个日期间隔的示例代码
Apr 15 Javascript
jQuery 中DOM 操作详解
Jan 13 Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 Javascript
jQuery代码实现表格中点击相应行变色功能
May 09 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
Nov 06 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
JS中FormData类实现文件上传
Mar 27 Javascript
微信小程序实现菜单左右联动
May 19 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
Aug 19 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
php SQL之where语句生成器
2009/03/24 PHP
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
smarty模板数学运算示例
2016/12/11 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
canvas实现钟表效果
2017/02/13 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
Python生成随机数组的方法小结
2017/04/15 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Python列表切片操作实例总结
2019/02/19 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
Python使用re模块验证危险字符
2020/05/21 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
2014元旦晚会策划方案
2014/02/19 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
优秀教师演讲稿
2014/05/06 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
营销计划书范文
2015/01/17 职场文书
个人年终总结开头
2015/03/06 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
基于python的matplotlib制作双Y轴图
2021/04/20 Python
浅析Python中的随机采样和概率分布
2021/12/06 Python