利用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 相关文章推荐
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
javascript实现点击提交按钮后显示loading的方法
Jul 03 Javascript
JQuery Ajax WebService传递参数的简单实例
Nov 02 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
Vue文件配置全局变量的实例
Sep 06 Javascript
浅谈JS的原型和继承
May 08 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
QT与javascript交互数据的实现
May 26 Javascript
vue组件vue-esign实现电子签名
Apr 21 Vue.js
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学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
php session安全问题分析
2011/06/24 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
通过构造函数实例化对象的方法
2017/06/28 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python实现rest请求api示例
2014/04/22 Python
9种python web 程序的部署方式小结
2014/06/30 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
pip命令无法使用的解决方法
2018/06/12 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python使用thrift教程的方法示例
2019/03/21 Python
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
存储过程的优点有哪些
2012/09/27 面试题
户外活动策划方案
2014/03/12 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书