利用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 相关文章推荐
jquery自定义下拉列表示例
Apr 25 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
vue的全局提示框组件实例代码
Feb 26 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
vue设置导航栏、侧边栏为公共页面的例子
Nov 01 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 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 彩色文字实现代码
2009/06/29 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
JavaScript delete 属性的使用
2009/10/08 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
python实现k-means聚类算法
2018/02/23 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python制作抖音代码舞
2019/04/07 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
Python多线程获取返回值代码实例
2020/02/17 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
前台接待的工作职责
2013/11/21 职场文书
会议邀请书范文
2014/02/02 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
停课通知书
2015/04/24 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android