我有一个脚本,当您按下按钮时会随机显示div。我想创建一个愿望清单页面,以便人们跟踪自己喜欢的东西。
我已经设置了一天的会话和Cookie。这是我的脚本,它不起作用,但是我不确定为什么...谢谢您的所有帮助。

$(".places").hide();

$("#button").click(function(){
    "use strict";
     var randomNumber = Math.floor(Math.random()*45);
     var selectedDiv = "#place" + randomNumber;
     $('.places').hide().filter(selectedDiv).show();
     $(".wishlistbutton").click(localStorage.setItem(selectedDiv,JSON.stringify(wishlist)));
});

var wishlistkey = "wishlist";
var wishlist = localStorage.getItem(wishlistkey);

if($.isEmptyObject(wishlist)){
    wishlist = new Array()
} else {
    wishlist = JSON.parse(wishlist);
}

最佳答案

$.isEmptyObject方法无法按预期工作,因为您要提供一个字符串作为参数(期望的参数类型是普通的JS对象),实际上这在您的代码中是不必要的。

var wishlist = localStorage.getItem(wishlistkey);
if(!wishlist){
   wishlist = new Array()}
else {
   wishlist = JSON.parse(wishlist);
}


尽管您需要将JSON字符串存储在localStorage中,其键为wishlist而不是div id。

localStorage.setItem('wishlist', JSON.stringify(wishlist))

07-28 10:40