jQuery实现本地存储

 更新时间:2020年12月22日 10:40:26   作者:李大璟  
这篇文章主要为大家详细介绍了jQuery实现本地存储,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

用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及AJAX实现名人名言随机生成器

    基于JQuery及AJAX实现名人名言随机生成器

    这篇文章主要为大家详细介绍了基于JQuery及AJAX实现名人名言随机生成器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Jquery on方法绑定事件后执行多次的解决方法

    Jquery on方法绑定事件后执行多次的解决方法

    下面小编就为大家带来一篇Jquery on方法绑定事件后执行多次的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 基于jquery实现省市区三级联动效果

    基于jquery实现省市区三级联动效果

    这篇文章主要介绍了基于jquery实现省市区三级联动效果,需要的朋友可以参考下
    2015-12-12
  • JQuery的read函数与js的onload不同方式实现

    JQuery的read函数与js的onload不同方式实现

    JQuery的read函数与js的onload,想必大家对这两个方法都有所熟悉吧,接下来介绍一个实例用以上两种方法各自实现,感兴趣的你可不要错过了哈,希望可以帮助到你
    2013-03-03
  • jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】

    jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】

    这篇文章主要介绍了jQuery插件FusionCharts绘制的3D环饼图效果,结合完整实例形式分析了jQuery使用FusionCharts载入xml格式数据绘制图形的操作步骤与相关实现技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2017-04-04
  • jqgrid 编辑添加功能详细解析

    jqgrid 编辑添加功能详细解析

    本文是对jqgrid 编辑添加功能进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • jQuery select自动选中功能实现方法分析

    jQuery select自动选中功能实现方法分析

    这篇文章主要介绍了jQuery select自动选中功能,结合实例形式分析了jQuery实现select响应与级联菜单显示相关功能与操作技巧,需要的朋友可以参考下
    2016-11-11
  • jQuery插件datatables使用教程

    jQuery插件datatables使用教程

    jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表格的排序、浏览器分页、服务器分页、筛选、格式化等功能。接下来通过本文给大家介绍jQuery插件datatables使用教程,感兴趣的朋友一起学习吧
    2016-04-04
  • jQuery实现简单的回到顶部totop功能示例

    jQuery实现简单的回到顶部totop功能示例

    这篇文章主要介绍了jQuery实现简单的回到顶部totop功能,涉及jQuery事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2017-10-10
  • 基于jquery的给文章加入关键字链接

    基于jquery的给文章加入关键字链接

    最近在做一个网站,遇到需要给网站内所有的文章加关键字链接的问题,我们在浏览一些网站的文章的时候,会发现文章里面的某些关键字是加了链接的,并且高亮显示。
    2010-10-10

最新评论