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


Posted in Javascript onOctober 12, 2016

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

今天在项目中,刚好用到给指定的table添加一行、删除一行,就直接找google,搜出来的东西不尽如人意,不是功能不好就是千篇一律,简直浪费时间还不讨好,于是乎就自己动手封装个,现就把代码分享出来,避免大伙重复造轮子,如有问题欢迎大伙拍砖指正,千万可别人身攻击,嘎嘎。。。

需求场景

1)、添加一行

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

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

2)、删除一行

支持动态删除一行。

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

1、原始界面如下:

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

2、添加一行,如要添加一行需点击“添加”按钮,现点击两下会自动添加两行,效果如下截图:

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

3、删除一行,如要删除指定行,先要选中行然后在点击“删除”按钮进行删除(这不是废话嘛~~~),现选中一行,效果如下截图:

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

4、对选中行进行删除,现点击“删除”按钮就会把选中的行删除掉,效果如下截图:

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

代码如下:

<%@ 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>

以上就是小编为大家带来的利用jquery给指定的table动态添加一行、删除一行的方法全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
javascript各种复制代码收集
Sep 20 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
js实现文本框中焦点在最后位置
Mar 04 Javascript
json字符串之间的相互转换示例代码
Aug 21 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
Javascript的表单与验证-非空验证
Mar 18 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
文本框只能输入数字的js代码(含小数点)
Jul 10 Javascript
javascript动态创建对象的属性详解
Nov 07 Javascript
Element Breadcrumb 面包屑的使用方法
Jul 26 Javascript
javascript之Object.assign()的痛点分析
Mar 03 Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 #Javascript
详解Javascript中的原型OOP
Oct 12 #Javascript
浅析BootStrap Treeview的简单使用
Oct 12 #Javascript
jquery自定义表单验证插件
Oct 12 #Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 #Javascript
老生常谈javascript的类型转换
Oct 12 #Javascript
vue制作加载更多功能的正确打开方式
Oct 12 #Javascript
You might like
用PHP动态创建Flash动画
2006/10/09 PHP
PHP无限分类(树形类)
2013/09/28 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
srcElement表格样式
2006/09/03 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
基本DOM节点操作
2017/01/17 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python字符串切片操作知识详解
2016/03/28 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
python实现多人聊天室
2020/03/31 Python
Python函数中不定长参数的写法
2019/02/13 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
python SocketServer源码深入解读
2019/09/17 Python
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
经销商年会策划方案
2014/05/29 职场文书
大学课外活动总结
2014/07/09 职场文书
银行转正自我鉴定
2014/09/29 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
三孔导游词
2015/02/05 职场文书
职称评定个人总结
2015/03/05 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
安全生产标语口号
2015/12/26 职场文书