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 11 jQuery
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
jQuery Tree Multiselect使用详解
May 02 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
jQuery实现简单QQ聊天框
Aug 27 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jQuery冲突问题解决方法
Jan 19 jQuery
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
详解Bootstrap插件
2016/04/25 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
vue实现通讯录功能
2018/07/14 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
TensorFlow实现模型评估
2018/09/07 Python
详解python运行三种方式
2019/05/13 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
24个canvas基础知识小结
2014/12/17 HTML / CSS
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
日语专业毕业生求职信
2013/12/04 职场文书
大学运动会入场词
2014/02/22 职场文书
庆祝儿童节标语
2014/10/09 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript