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 相关文章推荐
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
webpack写jquery插件的环境配置
Dec 21 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
使用jQuery实现掷骰子游戏
Oct 24 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+javascript实现二级级联菜单的制作
2008/05/06 PHP
php抓取https的内容的代码
2010/04/06 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
分享3个php获取日历的函数
2015/09/25 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
javascript中this关键字详解
2016/12/12 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
python使用tkinter实现简单计算器
2018/01/30 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
投标服务承诺书
2014/05/28 职场文书
单位作风建设自查报告
2014/10/23 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
Python制作动态字符画的源码
2021/08/04 Python