2016-07-10 54 views
0

我想遞增我的i值以將不同的值保存到本地存儲。但我總是= 0,我能做些什麼來改變這種行爲?函數中的遞增值

(function() { 
    var i = 0; 
     var storage = new Storage(); 
    window.onload = function() { 
     document.getElementById('buttonCreate').onclick = function() { 
      var topicValue = document.getElementById("create-topic").value; 
      var statusValue = document.getElementById("create-status").value; 
      var descriptionValue = document.getElementById("create-description").value; 
      var ticket = { 
       topic: topicValue, 
       status: statusValue, 
       description: descriptionValue 
      }; 
      storage.set("task-"+i, ticket); 
     i++; 

     } 
    } 
})(); 
function Storage() { 
    this._ITEMS_DESCRIPTOR = 'items'; 
} 
Storage.prototype.get = function() { 
    var fromStorage = localStorage.getItem(this._ITEMS_DESCRIPTOR); 
    return fromStorage ? JSON.parse(fromStorage) : []; 
}; 
Storage.prototype.set = function(key, items) { 
    localStorage.setItem(key, JSON.stringify(items)); 
}; 
+0

在將'i'設置爲'0'之後立即調用'storage.set',並且在這之間永不增加值。除了每次將其聲明爲「0」以外,如果它存在,則將其設置爲存儲器中項目的值。另外一定要增加,然後調用'storage.set'。 –

+0

我已經評論過您的[上一個問題](http://stackoverflow.com/questions/38279021/incrementing-key-value-to-save-data-in-localstorage),您沒有獲取先前存儲的值。 – Rajesh

+0

我如何獲取以前存儲的值? –

回答

2

聲明var i = 0以外的函數。現在它每次運行時都會被重置爲0。

+0

'window.onload'只運行一次。隨着'(function(){...})()'中的項目運行一次。所以我不知道會做什麼。 –

+0

使我的全球? –