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插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 jQuery
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
jQuery实现高级检索功能
May 28 jQuery
jQuery zTree树插件的使用教程
Aug 16 jQuery
JQuery复选框全选效果如何实现
May 08 jQuery
jQuery冲突问题解决方法
Jan 19 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基础学习之变量的使用
2011/06/09 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
Python 文件重命名工具代码
2009/07/26 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
理工大学毕业生自荐信
2013/11/01 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
工作态度不好检讨书
2015/05/06 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python