2017-11-29 10 views
1

ボタンを押すとdivをランダムに表示するスクリプトがあります。人々が好きなものを追跡するために、欲しいものリストページを作りたいと思います。 セッションとクッキーを1日設定しました。これは私のスクリプトです、それは動作しませんが、私はなぜ分からないのですか...すべてのあなたの助けをありがとう。JqueryとPHPウィッシュリスト - データの取得方法

$(".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); 
} 

答えて

0

あなたのコードでは不要である実際に、(期待される引数の種類が普通JSオブジェクトである)は、引数として文字列を提供しているので、あなたが期待通り$.isEmptyObject方法は動作しません。

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

あなたが代わりのdivのidのwishlistとしてキーとのlocalStorageにJSON文字列を格納する必要がありますが。

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

それはあなたがのlocalStorage SetItem関数を呼び出して、キーを渡しているように、それは、DIV(selectedDiv)の名前であるように見えますが、その後、あなたは、「ウィッシュリスト」設定してみてくださいという名前のキー上のgetItemしようとしていますこのような保管のアイテム

$(".wishlistbutton").click(localStorage.setItem("wishlist", JSON.stringify(wishlist))); }); 
+0

これは逆ですか? (wishListをselectedDivと置き換えていますか?多くのありがとう –

+0

あなたは事前に知っているキーとしてlocalstorageにアイテムを保存する必要があります(ここでは「wishlist」です)。値には次のようにマークしたdivのリストが含まれますそれらのウィッシュリストの一部です。そこでsetItemをキー "wishlist"に渡すことで、ウィッシュリストを読む準備ができたらgetItem( "wishlist")を呼び出すことができます – rickjerrity

関連する問題