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用noConflict代替$的实现方法
Apr 12 jQuery
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
jquery分页优化操作实例分析
Aug 23 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
jQuery实现可以计算进制转换的计算器
Oct 19 jQuery
jquery实现拖拽小方块效果
Dec 10 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版(1)
2006/10/09 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP 8新特性简介
2020/08/18 PHP
PHP时间类完整代码实例
2021/02/26 PHP
arguments对象
2006/11/20 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python中的pass语句使用方法讲解
2015/05/14 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python 串行执行和并行执行实例
2020/04/30 Python
Python绘制组合图的示例
2020/09/18 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
大学活动策划书范文
2014/01/10 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
高中家长意见怎么写
2015/06/03 职场文书
走近毛泽东观后感
2015/06/04 职场文书
2015党建工作简报
2015/07/21 职场文书