2016-08-07 2 views
0

クラス要素のタイトルを配列に追加して、それをlocalStorageの「データベース」にプッシュする機能するコードがあります。すべてうまくいっていますが、私は何度も要素をそこに押し込もうとしません。いくつかの解決策を試してみましたが、それを得られませんでした。どんな助けも高く評価されます。脳が...溶けて、は、複製をlocalStorageにプッシュしないようにしています

var stores=[] 
    jQuery('.additem').click(function() { 
    var x = jQuery(this).closest('h4.title').text(); 
    if ((x == null) || (x == "") || (x == ($.inArray(this.x) > -1))) { 
     jQuery(this).closest('.infobox').html('Already there or empty.'); 
     jQuery(this).closest('.infobox').show().delay(500).fadeOut(1000); 
    } else { 
     stores.push(x); 
     console.log(stores); 
     window.localStorage.setItem("database", stores.join(" + ")); 
     } 
    }); 

はまた

(x == (stores.indexOf(this) > -1)) 

そして何か他のカップルと試みました。 ありがとう

答えて

0

私はあなたがそれを過ぎていると思います。 これだけでは動作しません:

if ((x == null) || (x == "") || stores.indexOf(x) > -1) { 
+0

それは私にとって典型的です:)しかし、問題が見つかりました。以前は空の代わりにvar stores = [C]をデバッグすることを定義していました。 (C = localStorageデータベースですが、ありがとうございます!現在は –

0

あなたは、ストレージのための配列にしてから変換することができSetを使用することができます。

var s = new Set(); 
s.add(value); 
localStorage.setItem('mySet',Array.from(s).toString()) 

var s = new Set(JSON.parse(localStorage.getItem('mySet')) 
+0

を指定できますか?おそらく例ですか? –

+0

私の回答を編集しました@Mik_A – Hunter

+0

私はこれを調べています。 –

関連する問題