基于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 相关文章推荐
jquery刷新页面的实现代码(局部及全页面刷新)
Jul 11 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
Oct 14 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
Dec 19 Javascript
js中top的作用深入剖析
Mar 04 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
May 27 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
Jan 19 Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 Javascript
详解vuex 中的 state 在组件中如何监听
May 23 Javascript
解析原来浏览器原生支持JS Base64编码解码
Aug 12 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
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语法(1)
2006/10/09 PHP
php 图片上传类代码
2009/07/17 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
openPNE常用方法分享
2011/11/29 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
详解php中反射的应用
2016/03/15 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python实现简单的购物程序代码实例
2020/03/03 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
出纳岗位职责范本
2013/12/01 职场文书
会议主持词
2014/03/17 职场文书
岗位职责说明书
2014/05/07 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript