利用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 跳转代码集合
Dec 03 Javascript
jquery select操作的日期联动实现代码
Dec 06 Javascript
jQuery 选择器详解
Jan 19 Javascript
js获取json元素数量的方法
Jan 27 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
Mar 09 Javascript
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 jQuery
webpack引入eslint配置详解
Jan 22 Javascript
js字符串处理之绝妙的代码
Apr 05 Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 Javascript
vue 调用 RESTful风格接口操作
Aug 11 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
phplot生成图片类用法详解
2015/01/06 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
juqery 学习之四 筛选过滤
2010/11/30 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
python中kmeans聚类实现代码
2018/02/23 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
网络安全方面的面试题
2016/01/07 面试题
linux面试题参考答案(5)
2014/09/01 面试题
自我评价范文
2013/12/22 职场文书
企业精神口号
2014/06/11 职场文书
名人演讲稿范文
2014/09/16 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
党员个人年度总结
2015/02/14 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers