我有一个这样的问题:我必须添加一些图片到画廊,然后重新加载页面,他们应该仍然在那里。我已经成功地做到了,元素被添加到数组中,一切都很好。在重新加载文档之后,它们也在本地存储中。但是,在重新加载文档之后,在尝试添加其他图片后,数组将被覆盖。所以,而不是:[img1, image, image, ..., imgn],我再次得到了[imgn, image, img2]。这是我的密码:
<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>我做错什么了伙计们?谢谢你帮忙。
发布于 2015-09-01 07:44:09
您首先应该从本地存储中获取这些项,以便将它们与您想要保存的新项合并,然后才能再次将它们保存回本地存储。在本例中,您还不需要imageList变量。
<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>发布于 2015-09-01 07:41:08
在您显示的代码中,您从不使用声明的存储。因此,您只存储imageList数组中当前存在的内容。
您应该通过读取本地存储来声明imageList:
var imageList = localStorage.getItem("imageList");https://stackoverflow.com/questions/32326076
复制相似问题