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插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
jQuery轮播图功能制作方法详解
Dec 03 jQuery
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
如何使用php实现评委评分器
2015/07/31 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
js实现分页功能
2017/05/24 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
详解Django中的权限和组以及消息
2015/07/23 Python
python 系统调用的实例详解
2017/07/11 Python
Python 中的lambda函数介绍
2018/10/10 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
Python图片的横坐标汉字实例
2019/12/04 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
详解Python中第三方库Faker
2020/09/25 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
应聘编辑职位自荐信范文
2014/01/05 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
大学生入党群众意见书
2015/06/02 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电