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 插件学习(一)
Aug 06 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
Jan 20 Javascript
jquery $.each() 使用小探
Aug 23 Javascript
Bootstrap每天必学之表格
Nov 23 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
Jun 06 Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 Javascript
js 两个日期比较相差多少天的实例
Oct 19 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
Element Dialog对话框的使用示例
Jul 26 Javascript
vue修饰符.capture和.self的区别
Apr 22 Vue.js
详解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
将form表单通过ajax实现无刷新提交的简单实例
Oct 12 #Javascript
You might like
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
Javascript实现字数统计
2015/07/03 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python 中判断列表是否为空的方法
2019/11/24 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
公司道歉信范文
2014/01/09 职场文书
写自荐信的注意事项
2014/03/09 职场文书
绩效考核实施方案
2014/03/18 职场文书
师范生见习报告
2014/10/31 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL