
本文将介绍如何使用 jQuery 将数据保存到浏览器的 Local Storage 中。Local Storage 允许你在用户浏览器中存储键值对数据,即使关闭浏览器窗口或选项卡,数据仍然存在。我们将通过一个简单的示例,演示如何从 HTML 表格中获取数据,并将其保存到 Local Storage 中,以及如何从 Local Storage 中读取数据。
Local Storage 是 HTML5 提供的一种在客户端存储数据的机制。它类似于 cookies,但具有更大的存储容量(通常为 5MB)和更简单的 API。Local Storage 中的数据仅在用户的浏览器中可用,不会发送到服务器。
Local Storage 提供以下几个基本方法:
假设我们有一个 HTML 表格,其中包含 ID、姓名、地址和年龄等信息。我们希望在用户添加、编辑或删除表格数据时,将这些数据保存到 Local Storage 中,以便在下次访问页面时恢复数据。
以下是如何修改提供的 jQuery 代码以实现此目的:
<!DOCTYPE html>
<html lang="en">
<head>
<title>CRUD Table jQuery</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12 text-right">
<input type="button" id="btnAdd" class="btn btn-primary para" value="Add New" />
</div>
</div>
<div class="row pt-3">
<div class="col-md-12 col-sm-12 col-12 p-2 ">
<table id="tblData" class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Address</th>
<th>Age</th>
<th class="tdaction">Action</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<script>
var emptyRow = "<tr><td colspan='4' class='text-center'></td></tr>";
var emptyNewRow = "<tr class='trNewRow'>";
emptyNewRow = emptyNewRow + " <td class='tdID'>";
emptyNewRow = emptyNewRow + " <input type='text' class='form-control txtID' />";
emptyNewRow = emptyNewRow + " </td>";
emptyNewRow = emptyNewRow + " <td class='tdName'>";
emptyNewRow = emptyNewRow + " <input type='text' class='form-control txtName' />";
emptyNewRow = emptyNewRow + " </td>";
emptyNewRow = emptyNewRow + " <td class='tdAddress'>";
emptyNewRow = emptyNewRow + " <input type='text' class='form-control txtAddress' />";
emptyNewRow = emptyNewRow + " </td>";
emptyNewRow = emptyNewRow + " <td class='tdAge'>";
emptyNewRow = emptyNewRow + " <input type='text' class='form-control txtAge' />";
emptyNewRow = emptyNewRow + " </td>";
emptyNewRow = emptyNewRow + " <td class='tdAction'>";
emptyNewRow = emptyNewRow + " <button class='btn btn-sm btn-success btn-save'> Save</button>";
emptyNewRow = emptyNewRow + " <button class='btn btn-sm btn-success btn-cancel'> Delete</button>";
emptyNewRow = emptyNewRow + " </td>";
emptyNewRow = emptyNewRow + "</tr>";
var rowButtons ="<button class='btn btn-success btn-sm btn-edit' > Edit </button> <button class='btn btn-danger btn-sm' > Delete </button>";
var rowUpdateButtons ="<button class='btn btn-success btn-sm btn-save' > Update </button> <button class='btn btn-danger btn-sm btn-save' > Delete </button> ";
$(document).ready(function () {
//debugger;
loadData(); // Load data from local storage on page load
$("#tblData tbody").append(emptyRow); // adding empty row on page load
$("#btnAdd").click(function () {
//debugger;
if ($("#tblData tbody").children().children().length == 1) {
$("#tblData tbody").html("");
}
//debugger;
$("#tblData tbody").append(emptyNewRow); // appending dynamic string to table tbody
});
$('#tblData').on('click', '.btn-save', function () {
const id = $(this).parent().parent().find(".txtID").val();
$(this).parent().parent().find(".tdID").html(""+id+"");
const name = $(this).parent().parent().find(".txtName").val();
$(this).parent().parent().find(".tdName").html(""+name+"");
const address = $(this).parent().parent().find(".txtAddress").val();
$(this).parent().parent().find(".tdAddress").html(""+address+"");
const age = $(this).parent().parent().find(".txtAge").val();
$(this).parent().parent().find(".tdAge").html(""+age+"");
$(this).parent().parent().find(".tdAction").html(rowButtons);
saveData(); // Save data to local storage after saving a row
});
$('#tblData').on('click', '.btn-danger', function () { // registering function for delete button
$(this).parent().parent().remove();
if ($("#tblData tbody").children().children().length == 0) {
$("#tblData tbody").append(emptyRow);
}
saveData(); // Save data to local storage after deleting a row
});
$('#tblData').on('click', '.btn-cancel', function () {
$(this).parent().parent().remove();
saveData(); // Save data to local storage after canceling a row
});
$('#tblData').on('click', '.btn-edit', function () {
const id =$(this).parent().parent().find(".tdID").html();
$(this).parent().parent().find(".tdID").html("<input type='text' value='"+id+"' class='form-control txtID' />");
const name =$(this).parent().parent().find(".tdName").html();
$(this).parent().parent().find(".tdName").html("<input type='text' value='"+name+"' class='form-control txtName' />");
const address =$(this).parent().parent().find(".tdAddress").html();
$(this).parent().parent().find(".tdAddress").html("<input type='text' value='"+address+"' class='form-control txtAddress' />");
const age =$(this).parent().parent().find(".tdAge").html();
$(this).parent().parent().find(".tdAge").html("<input type='text' value='"+age+"' class='form-control txtAge' />");
$(this).parent().parent().find(".tdAction").html(rowUpdateButtons);
});
function saveData() {
var tableData = [];
$("#tblData tbody tr").each(function() {
var rowData = {};
rowData.id = $(this).find(".tdID").text();
rowData.name = $(this).find(".tdName").text();
rowData.address = $(this).find(".tdAddress").text();
rowData.age = $(this).find(".tdAge").text();
tableData.push(rowData);
});
localStorage.setItem('tableData', JSON.stringify(tableData));
}
function loadData() {
var storedData = localStorage.getItem('tableData');
if (storedData) {
var tableData = JSON.parse(storedData);
$("#tblData tbody").empty(); // Clear existing table data
for (var i = 0; i < tableData.length; i++) {
var rowData = tableData[i];
var newRow = "<tr>";
newRow += "<td class='tdID'>" + rowData.id + "</td>";
newRow += "<td class='tdName'>" + rowData.name + "</td>";
newRow += "<td class='tdAddress'>" + rowData.address + "</td>";
newRow += "<td class='tdAge'>" + rowData.age + "</td>";
newRow += "<td class='tdAction'>" + rowButtons + "</td>";
newRow += "</tr>";
$("#tblData tbody").append(newRow);
}
}
}
});
</script>
</body>
</html>代码解释:
saveData() 函数:
loadData() 函数:
调用 saveData() 和 loadData():
注意事项:
本文介绍了如何使用 jQuery 将数据保存到浏览器的 Local Storage 中。通过使用 Local Storage,我们可以轻松地在客户端存储和检索数据,从而提高 Web 应用程序的性能和用户体验。希望本文能够帮助你更好地理解和使用 Local Storage。
以上就是使用 jQuery 将数据保存到 Local Storage的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号