jQuery列表动态增加和删除的实现方法


Posted in jQuery onNovember 05, 2020

通过jQuery实现列表的数据动态添加与删除

代码演示

演示地址

背景隔行换色

CSS代码

/* 设置奇数行颜色 */
.even {
 background-color: dodgerblue;
}

/* 设置偶数行背景颜色 */
.odd {
 background-color: pink;
}

JavaScript代码

// 设置奇数偶数行的背景颜色
$("tr:even").addClass("even");
$("tr:odd").addClass("odd");

全选和取消全选事件

//设置全选和取消全选事件
$("thead th:first").append("<span id='show'></span>")
$("thead input:checkbox").click(function () {
 if ($(this).prop("checked")) {
 $("tbody input:checkbox").prop("checked", true);
 $("#show").replaceWith("<span id='show'>已全选</span>");
 } else {
 $("tbody input:checkbox").prop("checked", false);
 $("#show").replaceWith("<span id='show'>已取消全选</span>");
 }
});

删除

//给当前和未来元素添加绑定事件
$("tbody").on("click", "td>a:nth-child(2)", function () {
 if (confirm("确定要删除吗?")) {
 //取消背景颜色
 $("tr:even").removeClass("even");
 $("tr:odd").removeClass("odd");
 //移除tr
 $(this).parent().parent().remove()
 //添加背景颜色
 $("tr:even").addClass("even");
 $("tr:odd").addClass("odd");
 }
});

新增

HTML代码

<!--新增列表-->
<div>
 <form>
 <table>
  <tr>
  <td>序号</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分类名</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分类描述</td>
  <td><input type="text"/></td>
  </tr>
  <input type="reset" value="确定"/>
  <input type="reset" value="取消"/>
 </table>
 </form>
</div>

CSS代码

/*默认隐藏新增页面*/
div:nth-child(2) {
 display: none;
}

JavaScript代码

// 点击"新增"按钮显示新增列表
$("div:nth-child(1)>input:button").click(function () {
 $("div:nth-child(2)").show("slow");
});
//点击"取消"按钮隐藏div
$("div:nth-child(2) :reset:last").click(function () {
 $("div:nth-child(2)").hide("slow");
});
//点击"确定"按钮,提交表单
$("div:nth-child(2) :reset:first-child").click(function () {
 $("div:nth-child(1) tbody").append(" <tr>\n" +
 "  <td><input type=\"checkbox\"/></td>\n" +
 "  <td></td>\n" +
 "  <td></td>\n" +
 "  <td></td>\n" +
 "  <td><a href=\"#\">修改</a> <a href=\"#\">删除</a></td>\n" +
 " </tr>");

 // 获取文本框节点
 var textDom = $("div:nth-child(2) :text");
 // 获取td节点
 var tdDom = $("div:nth-child(1) tr:last td");
 for (var i = 0; i < textDom.length; i++) {
 //获取文本框内容
 var content = textDom.eq(i).val();
 // 把文本框获取的内容写入到td内
 tdDom.eq(i + 1).text(content);
 }
 //添加背景颜色
 $("tr:even").addClass("even");
 $("tr:odd").addClass("odd");
 $("div:nth-child(2)").hide("slow");
});

完整代码

HTML代码

<body>
<div>
 <input type="button" value="新增"/>
 <table cellpadding="0px" cellspacing="0px">
 <thead>
 <tr>
  <th><input type="checkbox"/></th>
  <th>序号</th>
  <th>分类名</th>
  <th>分类描述</th>
  <th>操作</th>
 </tr>
 </thead>
 <tbody>
 <tr>
  <td><input type="checkbox"/></td>
  <td>1</td>
  <td>1</td>
  <td>1</td>
  <td><a href="#">修改</a> <a href="#">删除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>2</td>
  <td>2</td>
  <td>2</td>
  <td><a href="#">修改</a> <a href="#">删除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>3</td>
  <td>3</td>
  <td>3</td>
  <td><a href="#">修改</a> <a href="#">删除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>4</td>
  <td>4</td>
  <td>4</td>
  <td><a href="#">修改</a> <a href="#">删除</a></td>
 </tr>
 </tbody>
 </table>
</div>

<!--新增列表-->
<div>
 <form>
 <table>
  <tr>
  <td>序号</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分类名</td>
  <td><input type="text"/></td>
  </tr>
  <tr>
  <td>分类描述</td>
  <td><input type="text"/></td>
  </tr>
  <input type="reset" value="确定"/>
  <input type="reset" value="取消"/>
 </table>
 </form>
</div>
</body>

CSS代码

table, th, td {
 border: 1px solid black;
 }

 th, td {
 width: 120px;
 height: 40px;
 line-height: 40px;
 text-align: center;
 }

 /* 设置奇数行颜色 */
 .even {
 background-color: dodgerblue;
 }

 /* 设置偶数行背景颜色 */
 .odd {
 background-color: pink;
 }

 /* 默认隐藏新增页面*/
 div:nth-child(2) {
 display: none;
 }

JavaScript代码

<script>
 $(function () {
 // 设置奇数偶数行的背景颜色
 $("tr:even").addClass("even");
 $("tr:odd").addClass("odd");

 //设置全选和取消全选事件
 $("thead th:first").append("<span id='show'></span>")
 $("thead input:checkbox").click(function () {
  if ($(this).prop("checked")) {
  $("tbody input:checkbox").prop("checked", true);
  $("#show").replaceWith("<span id='show'>已全选</span>");
  } else {
  $("tbody input:checkbox").prop("checked", false);
  $("#show").replaceWith("<span id='show'>已取消全选</span>");
  }
 });

 //新增商品
 $("div:nth-child(1)>input:button").click(function () {
  $("div:nth-child(2)").show("slow");
 });

 //"取消" 按钮
 $("div:nth-child(2) :reset:last").click(function () {
  $("div:nth-child(2)").hide("slow");
 });

 //"确定" 按钮
 $("div:nth-child(2) :reset:first-child").click(function () {
  $("div:nth-child(1) tbody").append(" <tr>\n" +
  "  <td><input type=\"checkbox\"/></td>\n" +
  "  <td></td>\n" +
  "  <td></td>\n" +
  "  <td></td>\n" +
  "  <td><a href=\"#\">修改</a> <a href=\"#\">删除</a></td>\n" +
  " </tr>");

  // 获取文本框节点
  var textDom = $("div:nth-child(2) :text");
  // 获取td节点
  var tdDom = $("div:nth-child(1) tr:last td");
  for (var i = 0; i < textDom.length; i++) {
  //获取文本框内容
  var content = textDom.eq(i).val();
  // 把文本框获取的内容写入到td内
  tdDom.eq(i + 1).text(content);
  }
  //添加背景颜色
  $("tr:even").addClass("even");
  $("tr:odd").addClass("odd");
  $("div:nth-child(2)").hide("slow");
 });

 //给当前和未来元素添加绑定事件
 $("tbody").on("click", "td>a:nth-child(2)", function () {
  if (confirm("确定要删除吗?")) {
  //取消背景颜色
  $("tr:even").removeClass("even");
  $("tr:odd").removeClass("odd");
  //移除tr
  $(this).parent().parent().remove()
  //添加背景颜色
  $("tr:even").addClass("even");
  $("tr:odd").addClass("odd");
  }
 });

 });
</script>

总结

到此这篇关于jQuery列表动态增加和删除实现方法的文章就介绍到这了,更多相关jQuery列表动态增加和删除内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

jQuery 相关文章推荐
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
jQuery属性选择器用法实例分析
Jun 28 jQuery
jQuery实现弹幕特效
Nov 29 jQuery
jQuery插件实现图片轮播效果
Oct 19 jQuery
使用jQuery实现购物车
Oct 29 #jQuery
jQuery实现简单评论区功能
Oct 26 #jQuery
jquery插件懒加载的示例
Oct 24 #jQuery
jquery实现异步文件上传ajaxfileupload.js
Oct 23 #jQuery
jquery实现抽奖功能
Oct 22 #jQuery
jQuery实现可以计算进制转换的计算器
Oct 19 #jQuery
jQuery实现计算器功能
Oct 19 #jQuery
You might like
PHP Error与Logging函数的深入理解
2013/06/03 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
php实现读取超大文件的方法
2014/07/28 PHP
PHP模板解析类实例
2015/07/09 PHP
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
create-react-app中添加less支持的实现
2019/11/15 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python3.5安装python3-tk详解
2019/04/26 Python
python requests使用socks5的例子
2019/07/25 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
Python any()函数的使用方法
2019/10/28 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
自考生自我评价分享
2014/01/18 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
医院领导班子整改方案
2014/10/01 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
《失物招领》教学反思
2016/02/20 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android