如何循环使用相同前缀的id

gar*_*arw 1 javascript arrays variables loops local-storage

我有这段代码,根据列表项的id号,在click to 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');

}
Run Code Online (Sandbox Code Playgroud)

现在我必须为每个单独的id号重复那段代码,而我试图将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');

}
Run Code Online (Sandbox Code Playgroud)

每个列表项具有相同的前缀"store-",并且每次创建新的商店位置时,这些数字不是特定的顺序,而是随机生成的.

Esa*_*ija 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 );
    }
});
Run Code Online (Sandbox Code Playgroud)