2015-12-14 38 views
2

我想创建一个小应用程序,我需要存储一些数据。 我将它们存储这样的:使用localStorage.getItem()获取differents属性的值?

localStorage.setItem(taskID, taskTitle, taskTotal, taskActual, taskProgress); 

(在taskIDtaskTitle等。是我从表单中获取值)

所以实际上效果很好,而我只有一个问题: 我可以轻松检索taskID使用:

for (i = 0; i < localStorage.length; i++) { 
    var taskID = "task-" + i; 
}; 

,但我怎么能检索其他值?就像我想要检索taskActual价值一样,我怎么能轻松做到这一点?

回答

1

这不是它的工作原理。您的代码在密钥taskID下设置值taskTitle,其余参数将被丢弃。然后,您只能使用localStorage.getItem(taskID)检索taskTitle

如果你想存储你需要可以存储多个项目的详细属性,例如:

var taskID = 'task-1'; 
localStorage.setItem(taskID +'-title', taskTitle); 
localStorage.setItem(taskID +'-total', taskTotal); 
// etc 
// to retrieve: 
var title = localStorage.getItem('task-1-title'); 

或存储序列化JSON:

var taskId = 'task-1', taskData = { title : 'task title', total : 'task total' /* etc.. */ }; 
// store 
localStorage.setItem(taskID, JSON.stringify(taskData)); 
// retrieve 
var task = JSON.parse(localStorage.getItem('task-1')); 
// now you can use task.title, task.total etc 
+0

谢谢你的回应,我会尽力的! :) – albec

+1

你好, 我有时间在我的代码中进行更改,包括你显示的第一个代码,它工作的很好! 再次感谢您! :) – albec

0

在本地存储你一键节能和一个值。在这种情况下,你的'键'是指定的项目,例如TaskId,taskTitle等。你需要有一个对应的键值。例如:localStorage.setItem('taskId',1);在这个例子中,你应该调用localStorage.getItem('taskId'),结果是1,因为它是相应的值。

+0

好吧,我在想,我们可以添加更多的一个值的关键。 谢谢你的回答! – albec