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插件
Mar 29 jQuery
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
jQuery选择器之属性筛选选择器用法详解
Sep 19 jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
JQuery常见节点操作实例分析
May 15 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
jQuery实现动态向上滚动
Dec 21 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
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
php数组去除空值函数分享
2015/02/02 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
php 数据结构之链表队列
2017/10/17 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
解读Bootstrap v4 sass设计
2016/05/29 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
三严三实对照检查材料
2014/08/25 职场文书
婚庆公司计划书
2014/09/15 职场文书
教师见习报告范文
2014/11/03 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python