Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 添加到本地存储_Jquery_Json_Local Storage - Fatal编程技术网

Jquery 添加到本地存储

Jquery 添加到本地存储,jquery,json,local-storage,Jquery,Json,Local Storage,我使用本地存储将json数据添加为收藏夹。出于某种原因,当我添加多个收藏夹时,它会删除本地存储中已有的收藏夹 $('.favoritesbtn').click(function() { var storedbar = JSON.parse(localStorage.getItem('storedBar')); var favArray = []; favArray.push(storedbar.id, storedbar.barname, sto

我使用本地存储将json数据添加为收藏夹。出于某种原因,当我添加多个收藏夹时,它会删除本地存储中已有的收藏夹

 $('.favoritesbtn').click(function() {
        var storedbar = JSON.parse(localStorage.getItem('storedBar'));
        var favArray = [];
        favArray.push(storedbar.id, storedbar.barname, storedbar.address, storedbar.description, storedbar.image);
        localStorage.setItem('favourites', JSON.stringify(favArray));
        console.log(localStorage.getItem('favourites'));

将行var favArray=[];点击不到事件

var favArray = []; //here
 $('.favoritesbtn').click(function() {
        var storedbar = JSON.parse(localStorage.getItem('storedBar'));

        favArray.push(storedbar.id, storedbar.barname, storedbar.address, storedbar.description, storedbar.image);
        localStorage.setItem('favourites', JSON.stringify(favArray));
        console.log(localStorage.getItem('favourites'));

这是预期的行为。 本地存储是一个键值存储,当您在一个已经存在的键值中写入数据时,它将被覆盖

为了添加一个值,您需要解析现有值,添加一个项并再次写入

var storedFavs = JSON.parse(localStorage.get('favourites') || '[]');
storedFavs.push(storedbar.id, storedbar.barname, storedbar.address, storedbar.description, storedbar.image);
localStorage.setItem('favourites', JSON.stringify(storedFavs));

您正在编写一个包含一个元素的数组,首先需要读入您的收藏夹,将新元素添加到其中,然后将其保存回去。尝试类似的方法,尽管您可能希望添加一些检查来处理没有优惠的情况,然后使用空数组等等

    var storedbar = JSON.parse(localStorage.getItem('storedBar'));
    var favArray = JSON.parse(localStorage.getItem('favourites'));
    favArray.push(storedbar.id, storedbar.barname, storedbar.address, storedbar.description, storedbar.image);
    localStorage.setItem('favourites', JSON.stringify(favArray));
    console.log(localStorage.getItem('favourites'));