使用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 相关文章推荐
prototype class详解
Sep 07 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
picChange 图片切换特效的函数代码
May 06 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
Json对象与Json字符串互转(4种转换方式)
Mar 27 Javascript
Ext JS添加子组件的误区探讨
Jun 28 Javascript
javascript 数组排序函数sort和reverse使用介绍
Nov 21 Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 Javascript
第十篇BootStrap轮播插件使用详解
Jun 21 Javascript
BootStrap实现轮播图效果(收藏)
Dec 30 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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和ACCESS写聊天室(七)
2006/10/09 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
javascript 事件绑定问题
2011/01/01 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
浅谈Node.js 沙箱环境
2018/05/15 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
Python的gevent框架的入门教程
2015/04/29 Python
如何通过Python实现标签云算法
2019/07/02 Python
python实现串口自动触发工作的示例
2019/07/02 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
装修五一活动策划案
2014/01/23 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
村抢险救灾方案
2014/05/09 职场文书
绿色环保标语
2014/06/12 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
超强台风观后感
2015/06/09 职场文书
经营场所使用证明
2015/06/19 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电