利用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 相关文章推荐
响应鼠标变换表格背景或者颜色的代码
Mar 30 Javascript
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
javascript object array方法使用详解
Dec 03 Javascript
javaScript函数中执行C#代码中的函数方法总结
Aug 07 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
Apr 10 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
Visual Studio中js调试的方法图解
Jun 30 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
JS实现简易贪吃蛇游戏
Aug 24 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
js转换对象为xml
2017/02/17 Javascript
详解vue-router基本使用
2017/04/18 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
js实现缓动动画
2020/11/25 Javascript
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python事件驱动event实现详解
2018/11/21 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
解决python运行效率不高的问题
2020/07/20 Python
Django中ORM的基本使用教程
2020/12/22 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
实习护士自我鉴定
2013/10/13 职场文书
总裁岗位职责
2013/12/04 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
材料员岗位职责
2014/03/13 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android