使用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 相关文章推荐
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
javascript中简单的进制转换代码实例
Oct 26 Javascript
Javascript中的Array数组对象详谈
Mar 03 Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
Angular2 http jsonp的实例详解
Aug 31 Javascript
在Angular中使用JWT认证方法示例
Sep 10 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中cookie的使用方法
2014/03/29 PHP
PHP实现微信对账单处理
2018/10/01 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
JS delegate与live浅析
2013/12/21 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
ES6正则的扩展实例详解
2017/04/25 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python双向链表原理与实现方法详解
2019/12/03 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
金融专业个人求职信
2013/09/22 职场文书
文明学生标兵事迹
2014/01/21 职场文书
市场部经理岗位职责
2014/04/10 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
毕业评语大全
2014/05/04 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
优秀教师先进材料
2014/12/16 职场文书
个人自荐书怎么写
2015/03/26 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
Python源码解析之List
2021/05/21 Python
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis