jQuery实现本地存储


Posted in jQuery onDecember 22, 2020

用jQuery实现本地存储,供大家参考,具体内容如下

  • 要求:点击提交按钮,让用户输入的内容分别加入到表格对应的列表中
  • 要求:点击每一行的删除按钮,能删除当前行
  • 要求:刷新页面时能保留当前的页面效果(数据状态不会消失)

HTML结构

<div style="margin-bottom: 15px;">
    <input type="text" id="username" placeholder="请输入姓名">
    <input type="text" id="sex" placeholder="请输入性别">
    <input type="text" id="age" placeholder="请输入年龄">
    <input type="button" value="提交" id="btn">
  </div>
  <table border="1" width="540">
    <thead>
      <tr>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
        <td>操作</td>
      </tr>
    </thead>
    <tbody>


    </tbody>
</table>

初始化数据

// 初始化数据的作用:清空页面存储的内容恢复到原始状态
var arr = [{
      'username': '小红',
      'sex': '女',
      'age': 24
    }, {
      'username': '小蓝',
      'sex': '男',
      'age': 24
    }]
    localStorage.setItem('data', JSON.stringify(arr))

入口函数

$(function () {
//...以下所有代码
}

按钮绑定点击事件

$('#btn').click(function () {
        // var data = getData()
        // 绑定点击事件
        var obj = {
          // 获取输入框中的值
          username: $('#username').val(),
          sex: $('#sex').val(),
          age: $('#age').val()
        }
        // 重新获取数据
        var data = getData()
        // 重新往本地添加数据
        data.push(obj)
        // 存储数据
        setData(data)
        // 渲染到页面
        randerData()

      })

获取本地存储中的数据并把数据转成复杂的数据类型

function getData() {
        // 获取的是字符串类型,获得数据,没有数据返回为空数组
        return JSON.parse(localStorage.getItem('data')) || []
      }

存储data中的数据

function setData(data) {
        // 存储数据并把复杂数据类型转换成字符串类型
        localStorage.setItem('data', JSON.stringify(data))
      }

封装页面渲染函数

function randerData() {
        // 渲染前先清空列表
        $('tbody').empty()
        // 获取数据
        var data = getData()
        // 遍历data里面的对象元素,获取对象元素里面的值
        // item是数组里面的元素
        data.forEach(function (item, i) {
          // 创建tr
          var tr = '<tr><td>' + item.username + '</td><td>' + item.sex + '</td><td>' + item.age + '</td><td><a href="javascript:;" rel="external nofollow" >删除</a></td></tr>'
          // 在主体的末尾中添加tr
          $('tbody').append(tr)
        })
      }
// 页面一打开就开始把本地存储中的数据添加上去
randerData()

用事件委托给每个删除链接绑定点击删除事件

// 不能直接获取a
$('tbody').on('click', 'a', function () {
// 移除它的祖父元素tr
$(this).parents('tr').remove()
 // 重新获取数据
 setData(data)
 // 重新渲染
 randerData()
 })

jQuery实现本地存储

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
使用jQuery实现动态添加小广告
Jul 11 jQuery
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
jquery实现掷骰子小游戏
Oct 24 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
jQuery实现电梯导航模块
Dec 22 #jQuery
jQuery实现tab栏切换效果
Dec 22 #jQuery
jQuery+ajax实现文件上传功能
Dec 22 #jQuery
jQuery实现动态向上滚动
Dec 21 #jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 #jQuery
jquery实现淡入淡出轮播图效果
Dec 13 #jQuery
jquery实现拖拽小方块效果
Dec 10 #jQuery
You might like
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
js获取单选按钮的数据
2006/11/27 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
jquery禁用右键示例
2014/04/28 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
javascript实现连续赋值
2015/08/10 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
python excel转换csv代码实例
2019/08/26 Python
Django中modelform组件实例用法总结
2020/02/10 Python
python Selenium 库的使用技巧
2020/10/16 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
网络信息安全承诺书
2014/03/26 职场文书
计算机软件专业求职信
2014/06/10 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python