0

我的问题:下面的代码将一个值存储到 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')
}   
});
4

1 回答 1

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);      
});​​

像这样的东西会起作用吗?

演示:

于 2012-07-13T15:22:27.893 回答