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 相关文章推荐
获取客户端网卡MAC地址和IP地址实现JS代码
Mar 17 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
JavaScript 学习笔记之基础中的基础
Jan 13 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
Oct 26 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
Sep 08 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
Feb 20 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 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
将form表单通过ajax实现无刷新提交的简单实例
Oct 12 #Javascript
You might like
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
拖动一个HTML元素
2006/12/22 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
python梯度下降法的简单示例
2018/08/31 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
详解python做UI界面的方法
2019/02/27 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
wxPython多个窗口的基本结构
2019/11/19 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
信息专业本科生个人的自我评价
2013/10/28 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
2015年超市工作总结
2015/04/09 职场文书
红色电影观后感
2015/06/18 职场文书
Python利用zhdate模块实现农历日期处理
2022/03/31 Python