首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5 LocalStorage重载文档

HTML5 LocalStorage重载文档
EN

Stack Overflow用户
提问于 2015-09-01 07:38:14
回答 2查看 1.1K关注 0票数 0

我有一个这样的问题:我必须添加一些图片到画廊,然后重新加载页面,他们应该仍然在那里。我已经成功地做到了,元素被添加到数组中,一切都很好。在重新加载文档之后,它们也在本地存储中。但是,在重新加载文档之后,在尝试添加其他图片后,数组将被覆盖。所以,而不是:[img1, image, image, ..., imgn],我再次得到了[imgn, image, img2]。这是我的密码:

代码语言:javascript
复制
<script type="text/javascript">

        $(document).ready(function() {
          var imageList = [];
          $('.addPic').click(function() { 
                 var image = $(this).attr('data-image'); //this variable contains particular image ID
                 imageList.push(image);
                 localStorage.setItem("imageList", JSON.stringify(imageList)); 
          });
        });

</script>

我做错什么了伙计们?谢谢你帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-01 07:44:09

您首先应该从本地存储中获取这些项,以便将它们与您想要保存的新项合并,然后才能再次将它们保存回本地存储。在本例中,您还不需要imageList变量。

代码语言:javascript
复制
<script type="text/javascript">
    var LIST_ID = 'imageList';

    $(document).ready(function() {
          $('.addPic').click(function() { 
              var image = $(this).attr('data-image'),
                  items= JSON.parse(localStorage.getItem(LIST_ID)) || []; 

              items.push(image);
              localStorage.setItem(LIST_ID, JSON.stringify(items)); 
          });
     });

</script>
票数 2
EN

Stack Overflow用户

发布于 2015-09-01 07:41:08

在您显示的代码中,您从不使用声明的存储。因此,您只存储imageList数组中当前存在的内容。

您应该通过读取本地存储来声明imageList:

代码语言:javascript
复制
var imageList = localStorage.getItem("imageList");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32326076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档