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


Posted in Javascript onOctober 13, 2016

需求场景

1)、添加一行

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

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

2)、删除一行

支持动态删除一行。

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

1、原始界面如下:
使用jquery给指定的table动态添加一行、删除一行
2、添加一行,如要添加一行需点击“添加”按钮,现点击两下会自动添加两行,效果如下截图:
使用jquery给指定的table动态添加一行、删除一行
3、删除一行,如要删除指定行,先要选中行然后在点击“删除”按钮进行删除(这不是废话嘛~~~),现选中一行,效果如下截图:
使用jquery给指定的table动态添加一行、删除一行
4、对选中行进行删除,现点击“删除”按钮就会把选中的行删除掉,效果如下截图:
使用jquery给指定的table动态添加一行、删除一行

核心代码:

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

代码如下:

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

如果上面的文章介绍的不够详细,可以参考下面的文章与演示

Javascript 相关文章推荐
javascript 四则运算精度修正函数代码
May 31 Javascript
jquery中eq和get的区别与使用方法
Apr 14 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 Javascript
jQuery和AngularJS的区别浅析
Jan 29 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
Dec 20 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 jQuery
解决Vue中mounted钩子函数获取节点高度出错问题
May 18 Javascript
JS查找孩子节点简单示例
Jul 25 Javascript
jQuery旋转插件jqueryrotate用法详解
Oct 13 #Javascript
JS取模、取商及取整运算方法示例
Oct 13 #Javascript
JavaScript中常用的验证reg
Oct 13 #Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
Oct 13 #Javascript
浅谈jquery上下滑动的注意事项
Oct 13 #Javascript
js中class的点击事件没有效果的解决方法
Oct 13 #Javascript
Angular.js中$apply()和$digest()的深入理解
Oct 13 #Javascript
You might like
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php自定义时间转换函数示例
2016/12/07 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
layui文件上传实现代码
2017/05/20 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
基于Require.js使用方法(总结)
2017/10/26 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
python验证码识别的示例代码
2017/09/21 Python
Python入门学习指南分享
2018/04/11 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
2014村书记党建工作汇报材料
2014/11/02 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
校园开放日新闻稿
2015/07/17 职场文书
初中物理教学反思
2016/02/19 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
Mysql Show Profile
2021/04/05 MySQL
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python