如何向localstorage数组添加多个值?

时间:2012-07-13 14:41:12

标签: jquery local-storage

我的问题:下面的代码将一个值存储到regId,当我再次单击按钮时,此值将被覆盖。如何在regId中存储新值而不覆盖regId数组中的其他值?

$('.btn-joinContest').live('click', function(e){
if (Modernizr.localstorage) {
    var id = getUrlVars()["id"],
        regId = [ ],
        currentList = localStorage["contest"];

    if(currentList == null) {
        console.log('first click add to local storage');
        regId.push(id);
        localStorage['contest']=JSON.stringify(regId);  
    }
    else if (currentList.length === 0) {
        console.log('store contains empty value');
        regId.push(id);
        localStorage['contest']=JSON.stringify(regId);      
    } else {
        console.log('there is something in localstorage get it');
        regId = JSON.parse(currentList);
    // Search for a specified value within regId array and return its index
        // (or -1 if not   found).             
        if(jQuery.inArray(id, regId) > -1){
            console.log('id is already in array');
        } else {
            console.log('add current id to localstorage');
            regId.push(id);
            localStorage['contest']=JSON.stringify(regId);                  
        }             
    }
} else {
    console.log('this browser does not support localstorage')
}   
});

1 个答案:

答案 0 :(得分:0)

$('.btn-joinContest').live('click', function(e){
    id = 'Something new';
    currentList = localStorage["contest1"];
    var regId = [];
    console.log(currentList);
    if(currentList)
        regId = JSON.parse(currentList);
    regId.push(id);
    localStorage['contest1']=JSON.stringify(regId);      
});​​

这样的事情会起作用吗?

Demo: