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实现简单的手风琴效果
Apr 17 jQuery
jquery tmpl模板(实例讲解)
Sep 02 jQuery
jquery+css实现下拉列表功能
Sep 03 jQuery
jQuery自动或手动图片切换效果
Oct 11 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
Jul 03 jQuery
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jquery插件实现搜索历史
Apr 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
php,ajax实现分页
2008/03/27 PHP
paypal即时到账php实现代码
2010/11/28 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
javascript实现密码验证
2015/11/10 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
详解JavaScript的变量
2019/04/04 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
Python实现多线程下载文件的代码实例
2014/06/01 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
会计系个人求职信范文分享
2013/12/20 职场文书
学生党员思想汇报
2013/12/28 职场文书
初中物理教学反思
2014/01/14 职场文书
工程师岗位职责规定
2014/02/26 职场文书
融资租赁计划书
2014/04/29 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
oracle索引总结
2021/09/25 Oracle
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers