Joh*_*ith 9 javascript local-storage
好吧,我试图在这里按照例子,我知道可能有一些不同的方法在localstorage中向数组添加对象而不是覆盖它但我没有找到至少其中一个.
得到这个代码来存储数组中的对象,但它会覆盖自己.愿有人告诉我我错过了什么吗?(而且我担心我可能会失踪很多).
function addEntry() {
var entryTitle = document.getElementById("entryTitle").value;
var entryText = document.getElementById("entryText").value;
var entry = {
"title": entryTitle,
"text": entryText
};
localStorage.setItem("entry", JSON.stringify(entry));
var allEntries = [];
allEntries.push(entry);
localStorage.setItem("allEntries", JSON.stringify(allEntries));
};
Run Code Online (Sandbox Code Playgroud)
Cod*_*gue 28
当你使用setItem它时会覆盖它之前的项目.您需要使用它getItem来检索旧列表,附加到它,然后将其保存回localStorage:
function addEntry() {
// Parse any JSON previously stored in allEntries
var existingEntries = JSON.parse(localStorage.getItem("allEntries"));
if(existingEntries == null) existingEntries = [];
var entryTitle = document.getElementById("entryTitle").value;
var entryText = document.getElementById("entryText").value;
var entry = {
"title": entryTitle,
"text": entryText
};
localStorage.setItem("entry", JSON.stringify(entry));
// Save allEntries back to local storage
existingEntries.push(entry);
localStorage.setItem("allEntries", JSON.stringify(existingEntries));
};
Run Code Online (Sandbox Code Playgroud)
这是一个演示上述内容的小提琴.
也许你只需要在推送新条目之前获取条目:
var allEntries = JSON.parse(localStorage.getItem("allEntries")) || [];
allEntries.push(entry);
//etc...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14765 次 |
| 最近记录: |