Jquery利用本地存储localStorage实现增删改查功能

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.wrapper {
				width: 600px;
				margin: 0 auto;
			}

			.modal {
				width: 100%;
				height: 100vh;
				background-color: rgba(0, 0, 0, 0.5);
				position: absolute;
				display: none;
			}

			.modal .form {
				width: 500px;
				height: 300px;
				background-color: #fff;
				position: absolute;
				left: 0;
				top: 0;
				right: 0;
				bottom: 0;
				margin: auto;
				padding: 20px;
				box-sizing: border-box;
			}

			.modal .form input {
				width: 100%;
				height: 35px;
				margin-bottom: 20px;
			}

			.modal div span:nth-of-type(2) {
				float: right;
			}

			.modal .form div:nth-of-type(4) {
				width: 100%;
				text-align: center;
			}
		</style>
	</head>
	<body>

		<!-- 模态窗 -->
		<div class="modal">
			<div class="form">
				<!-- 隐式接收修改的id值用于修改 -->
				<input type="hidden" value="" class="active">
				<div><span>修改记录</span><span class="closeModal">X</span></div>
				<hr>
				<div><input type="text" class="username" placeholder="用户名"></div>
				<div><input type="password" class="pwd" placeholder="密码"></div>
				<div><button class="closeModal">关闭</button>&emsp;&emsp;<button class="addInfo">确认</button></div>
			</div>
		</div>
		<div class="wrapper">
			<div>
				<input type="search" value="">
				<button class="search">查询</button>
				<button class="add">增加</button>
			</div>
			<div class="tb">
				<table border="1" width="500">
					<thead>
						<tr>
							<th>id</th>
							<th>username</th>
							<th>password</th>
							<th></th>
						</tr>
					</thead>
					<tbody>
						<!-- <tr>
							<td>1</td>
							<td>张三</td>
							<td>123456</td>
							<td>
								<button class="update">修改</button>
								<button class="del">删除</button>
							</td>
						</tr> -->
					</tbody>
				</table>
			</div>
		</div>
		<script src="../8-29/js/jquery-3.6.0.js"></script>
		<script>
			$(function() {
				// 点击事件
				$(".add").click(function() {
					//显示模态框
					openModal()
				})
				$(".closeModal").click(function() {
					//关闭模态框
					closeModal();
					
				})
				// 添加信息
				$(".addInfo").click(function() {
					// 添加函数调用
					var id = $(".active").val();
					console.log(id);
					if (id == "") {
						add(); //添加操作
					} else {
						//修改操作
						update(id)
					}
					//关闭模态框
					closeModal()
					//渲染
					show()
				})
				//删除信息
				$("tbody").on("click", ".del", function() {

					//得到id
					var id = $(this).parent().parent().children().eq(0).text();
					// 删除函数调用
					del(id);
					// 重新渲染
					show()

				})
				// 根据条件查询
				$(".search").click(function() {
					var keywords = $("input[type=search]").val();
					//查询后渲染
					show(keywords);
					//清空
					$("input[type=search]").val("");
				})


				// 修改信息
				$("tbody").on("click", ".update", function() {
					//显示模态窗
					openModal();
					//根据id获取对应的对象
					arr = localStorage.arr == undefined ? [] : JSON.parse(localStorage.arr);
					var id = $(this).parent().parent().children().eq(0).text();
					var arr = arr.find(obj => {
						return obj.id == id;
					})
					//反写
					$(".username").val(arr.name);
					$(".pwd").val(arr.password);
					$(".active").val(arr.id);

				})



				// 函数
				var arr = localStorage.arr == undefined ? [] : localStorage.arr;
				var nextId = localStorage.nextId == undefined ? 0 : localStorage.nextId * 1;

				//添加信息
				function add() {
					var arr = localStorage.arr == undefined ? [] : JSON.parse(localStorage.arr);
					var username = $(".username").val();
					var pwd = $(".pwd").val();
					//定义对象
					var obj = {
						id: nextId++,
						name: username,
						password: pwd,
					}
					//添加到本地存储
					console.log(arr);
					arr.push(obj);
					localStorage.arr = JSON.stringify(arr);
					//更新id
					localStorage.nextId = nextId;

				}
				//进入时渲染
				show()
				// 渲染函数
				function show(keywords) {
					$("tbody").html("")
					var arr = localStorage.arr == undefined ? [] : JSON.parse(localStorage.arr);
					if (keywords != undefined) {
						arr = arr.filter(function(obj) {
							return obj.name.includes(keywords);
						})

					}
					arr.forEach(function(obj) {
						$("tbody").append(` <tr>
						<td>${obj.id}</td>
						<td>${obj.name}</td>
						<td>${obj.password}</td>
						<td>
							<button class="update">修改</button>
							<button class="del">删除</button>
						</td>
					</tr>`)
					})
					$(".username").val("")
					$(".pwd").val("")
				}
				// 删除函数
				function del(id) {
					var arr = localStorage.arr == undefined ? [] : JSON.parse(localStorage.arr);
					var index = arr.findIndex(function(obj) {
						return obj.id == id
					})
					arr.splice(index, 1)
					localStorage.arr = JSON.stringify(arr)
				}

				//查询函数
				function search() {
					var arr = localStorage.arr == undefined ? [] : JSON.parse(localStorage.arr);
					var index = arr.findIndex(function(obj) {
						return obj.id == id
					})
				}
				//修改信息
				function update(id) {
					var arr = localStorage.arr == undefined ? [] : JSON.parse(localStorage.arr);
				var ary=arr.find(function(obj) {
						return obj.id == id
					})
					ary.name = $(".username").val();
					ary.password = $(".pwd").val();

					//重新更新到本地
					localStorage.arr = JSON.stringify(arr);
				}

				//打开模态框
				function openModal() {
					$(".modal").fadeIn();
				}
				//关闭模态框
				function closeModal() {
					$(".modal").fadeOut();
					$(".active").val("");
				}

			})
		</script>




	</body>
</html>

默认进入
在这里插入图片描述
点击添加按钮,弹出模态框
在这里插入图片描述
添加成功
在这里插入图片描述
点击修改,弹出模态框修改
修改成功后的效果
在这里插入图片描述
删除
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值