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

通过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>&nbsp<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>&nbsp<a href="#">删除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>2</td>
  <td>2</td>
  <td>2</td>
  <td><a href="#">修改</a>&nbsp<a href="#">删除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>3</td>
  <td>3</td>
  <td>3</td>
  <td><a href="#">修改</a>&nbsp<a href="#">删除</a></td>
 </tr>
 <tr>
  <td><input type="checkbox"/></td>
  <td>4</td>
  <td>4</td>
  <td>4</td>
  <td><a href="#">修改</a>&nbsp<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>&nbsp<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列表动态增加和删除内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何使用Jquery动态生成二级选项列表

    这篇文章主要介绍了如何使用Jquery动态生成二级选项列表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 想写一个多级联动的选项列表,并且我想要动态生成,但是我看了好多博客看得我晕乎乎的,就自己查了一些jq 的方法自己尝试些了一下,下面放上我实现的效果和源代码 实现效果: 源代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" />

  • jQuery简单实现向列表动态添加新元素的方法示例

    本文实例讲述了jQuery简单实现向列表动态添加新元素的方法.分享给大家供大家参考,具体如下: 先看看效果图: 完整实现代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net jQuery列表添加新元素</title> <script src="jquery-

  • jQuery动态产生select option下拉列表

    但其中没有实现动态产生select option下拉列表. 在jQuery环境之下使用创建jQuery对象来实现动态产生,那是很方便的事情. 在数据库中准备一些数据: 存储过程: 开发ASP.NET MVC,实现程序,少不了model: 现创建一个实体Entity,即是与数据库通讯: 接下来,你可以创建获取数据集的方法,让前端jQuery执行的方法: ok,一切准备就绪. 创建一个select对象: $selectCity = $('<select />').attr({ name: 'cit

  • jQuery实现动态生成年月日级联下拉列表示例

    本文实例讲述了jQuery实现动态生成年月日级联下拉列表.分享给大家供大家参考,具体如下: html代码: <form name="form1" id="dateForm"> <select name="year"></select>年 <select name="month"></select>月 <select name="day">

  • 基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果

    最近基于jQuery和Bootstrap框架实现了一个仿知乎动态列表的前端效果,基本实现了和知乎动态列表相同的效果.如下: 1.基本列表项 2.列表项全文展开.折叠(图中为展开第一项) 3.评论项展开 4.列表数据加载(加载全部) 5.带动画效果的点赞功能 6.回复列表的hover显示功能 HTML代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta h

  • jQuery实现动态加载select下拉列表项功能示例

    本文实例讲述了jQuery实现动态加载select下拉列表项功能.分享给大家供大家参考,具体如下: 需求说明: 以前使用的select下拉列表都是静态的,select 的option数据都是写死的.现在项目中的select需要根据不同的场景使用不同的数据,解决方式就是动态加载option数据. 代码部分: 下面步骤介绍了如何从数据库获取数据,并动态的在前端显示. 步骤一:jsp页面静态的select: <div> <select id="selectSM"> &

  • jQuery实现列表内容的动态载入特效

    采用Jquery实现的列表数据动态更新效果,更新的数据可以是ajax请求的数据. CSS: .main { width: 100%; margin-top: 100px; text-align: center; font-size: 12.5px; } th, td { border: 1px solid #ccc; line-height: 40px; padding-left: 5px; } .item:hover { background-color: #efefef; } .item:n

  • jQuery实现动态显示select下拉列表数据的方法

    本文实例讲述了jQuery实现动态显示select下拉列表数据的方法.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>www.jb51.net jQuery动态显示表单</title> <script type="text/javascript" s

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

    通过jQuery实现列表的数据动态添加与删除 代码演示 演示地址 背景隔行换色 CSS代码 /* 设置奇数行颜色 */ .even { background-color: dodgerblue; } /* 设置偶数行背景颜色 */ .odd { background-color: pink; } JavaScript代码 // 设置奇数偶数行的背景颜色 $("tr:even").addClass("even"); $("tr:odd").addC

  • ionic中列表项增加和删除的实现方法

    在项目中遇到表单似的页面,需要进行增加一行和减少一行的操作,例如: 要实现可以选中商品,以及对商品的信息列表进行显示与否的操作 html代码如下: <div class="chanpinxiangqing"> <div class="item item-divider">产品明细</div> <div class="chanpinxiangqing" ng-repeat="master in m

  • jquery 如何动态添加、删除class样式方法介绍

    取与设置样式 获取class和设置class都可以使用attr()方法来完成.例如使用attr()方法来获取p元素的class,JQuery代码如下: 复制代码 代码如下: var p_class = $("p").attr("class"); //获取p元素的class [html] 使用attr()方法来设置p元素的class,JQuery代码如下: [code] 1 $("p").attr("'class", "

  • jQuery实现列表的增加和删除功能

    具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery</title> <style> </style> </head> <body> <div> <table style="margin: 10px a

  • Vue 实现列表动态添加和删除的两种方法小结

    下面将介绍两种方式实现动态添加和删除列表 1.不使用组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - vue实现列表增加和删除</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script&g

  • hadoop动态增加和删除节点方法介绍

    上一篇文章中我们介绍了Hadoop编程基于MR程序实现倒排索引示例的有关内容,这里我们看看如何在Hadoop中动态地增加和删除节点(DataNode). 假设集群操作系统均为:CentOS 6.7 x64 Hadoop版本为:2.6.3 一.动态增加DataNode 1.准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode中.ssh目录中的authorized_keys和id_rsa 2.复制Hadoop运行目录.hdfs目录及tmp目录至新的DataNode 3.

  • jQuery实现动态添加、删除按钮及input输入框的方法

    本文实例讲述了jQuery实现动态添加.删除按钮及input输入框的方法.分享给大家供大家参考,具体如下: <html> <head> <meta charset="utf-8"> <title>动态创建按钮</title> <script src='http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'></script> </head>

  • jquery增加和删除元素的方法

    本文实例讲述了jquery增加和删除元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>jquery增加删除元素</title> <script type="text/javascript&

  • 关于jquery中动态增加select,事件无效的快速解决方法

    近来做项目,用的jquery1.6.2库,当动态增加div 及select时,事件却不起作用. 查了一些资料,发现bind事件:向匹配元素附加一个或更多事件处理器.而live事件:为当前或未来的匹配元素添加一个或多个事件处理器. 其资料如下: [bind和live的区别] live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bin

  • JS实现动态增加和删除li标签行的实例代码

    如下所示: function addDepartment() { <span style="white-space:pre"> </span>var x = document.getElementById('department'); <span style="white-space:pre"> </span>var l = x.childNodes.length; <span style="white

随机推荐