1

リスト項目の ID 番号に基づいて、クリック時にリスト項目を localStorage に保存するコードのこのセクションがあります。別のページで、保存されたリスト項目を読み込むことができます。

var save1075 = $('#store-1075').get(0);
$('#store-1075').on('click', function () { 
    var storeStorageKey1075 = $(this).attr('id'); 
    localStorage.setItem('storeStorageKey1075', $(this).attr('id'));
    localStorage.setItem('storeStorageKey1075', this.innerHTML);
});

if ( localStorage.getItem('storeStorageKey1075') ) {
save1075.innerHTML = localStorage.getItem('storeStorageKey1075'); 
}

var storeStorageKey1075 = $(this).attr('id');
    if ( localStorage.getItem('storeStorageKey1075') ) {
    storeStorageKey1075 = localStorage.getItem('storeStorageKey1075');

}

現在、個々の ID 番号ごとにそのコードのチャンクを繰り返す必要があり、代わりに ID 番号を、クリックすると可能なすべての ID 番号をループするが、その特定の ID のみを保存する変数にしようとしています。たぶん、これに沿った何か:

var id = //some sort of loop or array of possible ids.
var save = $('#store-'+id).get(0);
$('#store-'+id).on('click', function () { 
    var storeStorageKey = $(this).attr('id'); 
    localStorage.setItem('storeStorageKey', $(this).attr('id'));
    localStorage.setItem('storeStorageKey', this.innerHTML);
});

if ( localStorage.getItem('storeStorageKey') ) {
save.innerHTML = localStorage.getItem('storeStorageKey'); 
}

var storeStorageKey = $(this).attr('id');
    if ( localStorage.getItem('storeStorageKey') ) {
    storeStorageKey = localStorage.getItem('storeStorageKey');

}

各リスト項目には同じ「store-」という接頭辞が付いており、番号は特定の順序ではなく、新しい店舗の場所が作成されるたびにランダムに生成されます。

4

3 に答える 3

7

明白なことは、クラスを追加することですが、次のこともできます。

var elems = $( "[id^='store']")

elems.on( "click", function() {//Save html on click
    localStorage.setItem( this.id, this.innerHTML );
});

    //Retrieve html
elems.each( function() {
    var html = localStorage.getItem( this.id );

    if( html ) {
        $(this).html( html );
    }
});
于 2012-10-25T16:54:01.540 に答える
2

これは、で始まるすべてのキーをループしますstoreStorageKey:

for (var i=0; i<localStorage.length; i++) {
    var key = localStorage.key(i);
    if (/^storeStorageKey/.test(key)) {
        var item = localStorage.getItem(key);
        // do something with item
    }
}
于 2012-10-25T16:58:32.270 に答える
0

ID にプレフィックスを使用する代わりに、アイテムが保存可能であることを示すクラスを追加することをお勧めします。

<div class="storable" id="store-1234">...</div>

次に、クラスを使用して、保存可能なすべてのものを一度に選択できます。

$('.storable').on('click', function () { 
    var storeStorageKey = $(this).attr('id'); 
    ...
});
于 2012-10-25T16:57:48.730 に答える