表格(table) 插件:支持当前行增行、删除。使用事件委托

最近做一个项目,需要对表格进行增行和删行。

研究了一下jquery操作dom的方法和事件委托原理,下面是我编写的例子,源码传上,欢迎高手指点。

功能:

支持在指定行下面增行;

支持删行指定行;

增行、删行后自动计算序号;使用table背景设置表格边框;

代码:

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4 <meta charset="utf-8">
  5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6 <title>Examples</title>
  7 <meta name="description" content="">
  8 <meta name="keywords" content="">
  9 <link href="" rel="stylesheet">
 10 <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
 11 <style type="text/css">
 12     body{
 13         font-size: 16px;
 14     }
 15     a{
 16         text-decoration:none;
 17     }
 18     div.wrap{
 19         width:40%;
 20         margin: auto;
 21     }
 22     table.list{
 23         background-color: black;
 24         width:100%;
 25     }
 26     table.list td,table.list th{
 27         background-color: white;
 28         width:20%;
 29         line-height: 2em;
 30     }
 31     .hidden{
 32         display:none;
 33     }
 34     .center{
 35         text-align: center;
 36     }
 37     .orange{
 38         color:orange;
 39     }
 40     a:hover{
 41         color:blue;
 42         font-weight: bold;
 43     }
 44 </style>
 45 </head>
 46 <body>
 47     <div class="wrap">
 48         <div class="list">
 49             <h1 class="center">表格插件</h1>
 50             <p class="orange">支持增行、删行</p>
 51             <table class="list" >
 52                 <thead>
 53                 <tr>
 54                     <th>序号</th>
 55                     <th>姓名</th>
 56                     <th>成绩</th>
 57                     <th><a href="#" class="add">增行</a></th>
 58                     <th></th>
 59                 </tr>
 60                 </thead>
 61                 <tbody>
 62                 <tr class="trmodle hidden">
 63                     <td class="center">1</td>
 64                     <td>
 65                         <select name="" id="">
 66                             <option value="1">张三</option>
 67                             <option value="2">李四</option>
 68                             <option value="3">王五</option>
 69                             <option value="3">赵五</option>
 70                         </select>
 71                     </td>
 72                     <td><input type="text" value="100" /></td>
 73                     <td class="center"><a href="#" class="add">增行</a></td>
 74                     <td class="center"><a href="#" class="del">删行</a></td>
 75                 </tr>
 76                 </tbody>
 77             </table>
 78         </div>
 79     </div>
 80 </body>
 81 <script type="text/javascript">
 82     $(function(){
 83         //使用事件委托:解决新增元素事件绑定问题
 84         $("table.list").on("click",function(e){
 85             //console.log(e);
 86             var v = e.target||srcElement;
 87             if(v.nodeName.toLowerCase()=="a"){
 88                 //增行
 89                 if(v.className=="add"){
 90                     //复制模板行数据
 91                     var n = "<tr>"+$(".trmodle").eq(0).clone().html()+"</tr>";
 92                     //找到父级元素中的tr,然后在后面增加增行
 93                     $(v).parent().parent().after(n);
 94                     setIndex();
 95                 }
 96                 //删行
 97                 if(v.className=="del"){
 98                     $(v).parent().parent().remove();
 99                     setIndex();
100                 }
101             }
102         });
103     });
104     //组织序号
105     function setIndex() {
106         var t = $("table.list tr");
107         t.each(function () {
108             $(this).children("td").eq(0).text($(this).index());
109         })
110     }
111 </script>
112 </html>

效果图:

时间: 2024-11-09 03:05:22

表格(table) 插件:支持当前行增行、删除。使用事件委托的相关文章

利用jquery.ajax在jsp页面动态生成table,可以增加修改,并支持一行和多行删除

声明:此为本人原创,只想实现功能,界面样式方面没多考虑,很粗糙能看懂就行--2018-5-14 动态生成table,我利用jsp内嵌java代码从后台获取对象集合,输出的时候有2中方法 1.直接利用java代码for(b1 b:bs)输出 2.利用JSTL标签库的c:foreach输出 不同之处在于,利用c:foreach输出要把获取的对象集合加入到request,然后用${}来读取,而for(b1 b:bs)可以直接输出. 第一种方法--for(b1 b:bs)输出<table id="

好用的自适应表格插件-bootstrap table (支持固定表头)

最近工作中找到了一款十分好用的表格插件,不但支持分页,样式,搜索,事件等等表格插件常有的功能外,最主要的就是他自带的冻结表头功能,让开发制作表格十分容易,不过网上大多都是英文文档,第一次使用会比较麻烦,因此在此记录一些简单的使用方式,方便扩展学习 首先是简单的页面形式,大家可以按照平常画表格的方式来创建html表格,然后通过js控制特殊的样式等操作(优点是表格更加直观,方便调整表格样式等,速度快) 当然,也可以只在页面上放一个table标签,之后的所有数据和样式都通过js控制也是可以的,后面会说

Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等

目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 一.概述 最近在研究QTableView支持多级表头的事情,百度了下网上资料还是挺多的.实现的方式总的来说有2种,效果都还不错,最主要是搞懂其中的原理,做到以不变应万变. 实现多级表头的方式有以下两种方案 行表头和列表头都是用一个表格去模拟 重写QHeadView 以上两种方式都可以实现多级表头,各

杂记c-----小写金额转化成大写数字;点击表格table时,当前被点击的tr行变色,其它行不变色;input隐藏显示

public string chang(string money) { //将小写金额转换成大写金额 double MyNumber = Convert.ToDouble(money); String[] MyScale = { "分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "

javascript可编辑表格控件 支持全键盘操作

项目中经常会用到表格编辑控件,网上也有不少,但是确实没有完全符合我要求的, 自己写一个吧! 1.该控件支持 数据显示列,文本编辑列,选择列,下拉列,索引列,删除列 六种列类型 2.支持全键盘操作,自定义键位 包括:列焦点切换,行焦点切换,新建行,数据保存(默认 上,下,左,右 键操作) 3.丰富的事件,绝大多数的客户端操作都能触发无刷新后台事件 4.支持统计运算,可自定义运算插件 5.兼容 Ie,chorme,firefox等绝大多数主流浏览器 下载地址:http://files.cnblogs

EasyTable2.0 功能更加强大,bug全面修复的html table插件!

最近整理和修复了1.0的全部bug,并且给2.0添加了不少新功能.由于语法上有些修正,所以我重新写了一个非常详细的demo.html在文档里面,这里直接贴出(由于添加了新的功能,et的2.0的压缩版本已经达到了20k的体积了,虽然略显大一些,但是我相信从功能上来讲觉得是划得来的.): <html> <head> <title></title> <style type="text/css"> * { margin: 0; pad

HTML——表格table标签,tr或者td

表格定义和用法 <tr> 标签定义 HTML 表格中的行. tr 元素包含一个或多个 th 或 td 元素. HTML 与 XHTML 之间的差异 在 HTML 4.01 中,tr 元素的 "bgcolor" 是不被赞成使用的. 在 XHTML 1.0 Strict DTD 中,tr 元素的 "bgcolor" 是不被支持的. 可选的属性 属性 值 描述 align right left center justify char 定义表格行的内容对齐方式.

CSS属性之表格(Table)

CSS属性之表格(Table) HTML为表格定义了3个元素用于对行进行分组,它们是 thead (表头).tbody (表格主体).tfoot (脚注). 在HTML4中文档结构中的 tfoot 必须出现在 tbody之前,HTML5去掉了这个限制. 如果在源代码中没有写分组元素时,浏览器会自动创建 tbody ,所以选择器 table > tr 总是无效,因为中间有 tbody. 如果表格主体中的每一行都是以 td 元素开头,那这些 th 就是行标题. colgroup 与 col <co

【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行

Editplus 选中一行: ctrl+rEditplus 复制一行: ctrl+r选择行,然后ctrl+c复制.复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行Editplus 删除一行: Shift+Alt+Delete 直接删除当前行, 或:shift+Delete也成.移动一行到上一行/下一行: alt+shift+向上键(向下键)--------------------------------------------------------------