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插件Echarts实现的渐变色柱状图
Mar 23 jQuery
jQuery Validate 校验多个相同name的方法
May 18 jQuery
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
May 19 jQuery
jquery实现简单实用的轮播器
May 23 jQuery
jquery Form轻松实现文件上传
May 24 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
jQuery zTree如何改变指定节点文本样式
Oct 16 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入门速成(2)
2006/10/09 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Django保护敏感信息的方法示例
2019/05/09 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python银行系统实现源码
2019/10/25 Python
python交互模式基础知识点学习
2020/06/18 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
毕业生求职简历的自我评价
2013/10/07 职场文书
保险专业求职信
2014/07/07 职场文书
初中重阳节活动总结
2015/05/05 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
护理工作心得体会
2016/01/22 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js
python绘制云雨图raincloud plot
2022/08/05 Python
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS