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 replace方法去空格
May 08 jQuery
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
jQuery中使用validate插件校验表单功能
May 24 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 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 信息采集程序代码
2009/03/17 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
JS实现浏览器菜单命令
2006/09/05 Javascript
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
PyQt5每天必学之组合框
2018/04/20 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
竟聘演讲稿范文
2013/12/31 职场文书
大学生简短的自我评价
2014/09/12 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
自我评价优缺点范文
2015/03/11 职场文书
调任通知
2015/04/21 职场文书
奔腾年代观后感
2015/06/09 职场文书