使用jquery给指定的table动态添加一行、删除一行


Posted in Javascript onOctober 13, 2016

需求场景

1)、添加一行

支持在任意行添加一行且可配置的,如可在第一行添加一行、第二行添加一行、倒数第一行添加一行、倒数第二行添加一行,随需求的变化都不会影响。

前提条件:行数需在表中存在否则添加不成功。

2)、删除一行

支持动态删除一行。

先演示结果,如中意了在好好研究代码。

1、原始界面如下:
使用jquery给指定的table动态添加一行、删除一行
2、添加一行,如要添加一行需点击“添加”按钮,现点击两下会自动添加两行,效果如下截图:
使用jquery给指定的table动态添加一行、删除一行
3、删除一行,如要删除指定行,先要选中行然后在点击“删除”按钮进行删除(这不是废话嘛~~~),现选中一行,效果如下截图:
使用jquery给指定的table动态添加一行、删除一行
4、对选中行进行删除,现点击“删除”按钮就会把选中的行删除掉,效果如下截图:
使用jquery给指定的table动态添加一行、删除一行

核心代码:

$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列
$("#mytable tr").find("td:nth-child(3)") 3表示获取每行的第三列

代码如下:

<%@ page language="java" pageEncoding="UTF-8"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <title>利用jquery给指定的table添加一行、删除一行</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <script type="text/javascript"
 src="<%=request.getContextPath()%>/js/jquery-1.5.1.js"></script>
 <script type="text/javascript">
 ////////添加一行、删除一行封装方法///////
 /**
 * 为table指定行添加一行
 *
 * tab 表id
 * row 行数,如:0->第一行 1->第二行 -2->倒数第二行 -1->最后一行
 * trHtml 添加行的html代码
 *
 */
 function addTr(tab, row, trHtml){
 //获取table最后一行 $("#tab tr:last")
 //获取table第一行 $("#tab tr").eq(0)
 //获取table倒数第二行 $("#tab tr").eq(-2)
 var $tr=$("#"+tab+" tr").eq(row);
 if($tr.size()==0){
 alert("指定的table id或行数不存在!");
 return;
 }
 $tr.after(trHtml);
 }
 
 function delTr(ckb){
 //获取选中的复选框,然后循环遍历删除
 var ckbs=$("input[name="+ckb+"]:checked");
 if(ckbs.size()==0){
 alert("要删除指定行,需选中要删除的行!");
 return;
 }
  ckbs.each(function(){
  $(this).parent().parent().remove();
  });
 }
 
 /**
 * 全选
 * 
 * allCkb 全选复选框的id
 * items 复选框的name
 */
 function allCheck(allCkb, items){
 $("#"+allCkb).click(function(){
 $('[name='+items+']:checkbox').attr("checked", this.checked );
 });
 }
 
 ////////添加一行、删除一行测试方法///////
 $(function(){
 //全选
 allCheck("allCkb", "ckb");
 });
 
 function addTr2(tab, row){
 var trHtml="<tr align='center'><td width='30%'><input type='checkbox' name='ckb'/></td><td width='30%'>地理</td><td width='30%'>60</td></tr>";
 addTr(tab, row, trHtml);
 }
 
 function delTr2(){
 delTr('ckb');
 }
 </script>
 </head>
 
 <body>
 <table border="1px #ooo" id="tab" cellpadding="0"
 cellspacing="0" width="30%">
 <tr align="center">
 <td width="30%"><input id="allCkb" type="checkbox"/></td>
 <td width="30%">科目</td>
 <td width="30%">成绩</td>
 </tr>
 <tr align="center">
 <td width="30%"></td>
 <td width="30%">语文</td>
 <td width="30%">80</td> 
 </tr>
 </table>
 <input type="button" onclick="addTr2('tab', -1)" value="添加">
 <input type="button" onclick="delTr2()" value="删除">
 
 </body>
</html>

如果上面的文章介绍的不够详细,可以参考下面的文章与演示

Javascript 相关文章推荐
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
javaScript中slice函数用法实例分析
Jun 08 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
javascript实现文字无缝滚动效果
Aug 26 Javascript
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
ES6学习教程之块级作用域详解
Oct 09 Javascript
实例分析JS与Node.js中的事件循环
Dec 12 Javascript
a标签调用js的方法总结
Sep 05 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
Sep 24 Javascript
react+antd 递归实现树状目录操作
Nov 02 Javascript
jQuery旋转插件jqueryrotate用法详解
Oct 13 #Javascript
JS取模、取商及取整运算方法示例
Oct 13 #Javascript
JavaScript中常用的验证reg
Oct 13 #Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
Oct 13 #Javascript
浅谈jquery上下滑动的注意事项
Oct 13 #Javascript
js中class的点击事件没有效果的解决方法
Oct 13 #Javascript
Angular.js中$apply()和$digest()的深入理解
Oct 13 #Javascript
You might like
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php文件包含的几种方式总结
2019/09/19 PHP
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
js判断节假日实例代码
2017/12/27 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
python远程邮件控制电脑升级版
2019/05/23 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
就业自荐信
2013/12/04 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
情侣吵架检讨书
2014/02/05 职场文书
一份创业计划书范文
2014/02/08 职场文书
ktv筹备计划书
2014/05/03 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
大学生党员个人总结
2015/02/13 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
Golang: 内建容器的用法
2021/05/05 Golang
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电