2016-11-23 46 views
-1

我从形式存储我的数据中的localStorage以以下格式:每次用户提交表单时显示在目前的localStorage对象的所有网页上的

Object {title: "dsadasds", dueDate: "dsadasdsa", summary: "dsadadas", body: "dasdasdas"} 
Object {title: "dasdadsa", dueDate: "dasdasdadasda", summary: "dsadasdasd", body: "dasdasdas"} 

此数据存储在localStorage的。现在在一个不同的页面'localhost:3000/notes'我想要显示存储在localStorage中的所有这些对象。目前使用下面的代码,它只显示提交的最后一个对象。

 var form = $('#form'), 
     formTitle = $('#title'), 
     formDueDate = $('#dueDate'), 
     formSummary = $('#summary'), 
     formBody = $('#body'); 

     var title = formTitle.val(); 
     var dueDate = formDueDate.val(); 
     var summary = formSummary.val(); 
     var body = formBody.val(); 
     var newContent2 = $('#new-content2') 

     var test = {}; 
     test = { 
      title: title, 
      dueDate: dueDate, 
      summary: summary, 
      body: body 
     } 

     localStorage.setItem('test', JSON.stringify(test)); 
     var LocalStoredData = JSON.parse(localStorage.getItem('test')); 
     console.log(LocalStoredData); 

     //for retrieving data from locastorage 
     var retrievedData = localStorage.getItem('test'); 
     var text = JSON.parse(retrievedData); 
     var showTitle = text["title"]; 
     var showDueDate= text["dueDate"]; 
     var showSummary = text["summary"]; 
     var showBody = text["body"]; 

     $('#showTitle').html(showTitle); 
     $('#showDueDate').html(showDueDate); 
     $('#showSummary').html(showSummary); 
     $('#showBody').html(showBody); 

我需要循环槽的所有对象(或任何其他机制)从localStorage的提取所有的对象,并在网页上适当的div显示它们。我试图把检索代码放在循环中:

for(var i=0;i<localStorage.length;i++) 

但是使用这个循环它没有显示任何东西。如何显示我的localStorage中存在的所有对象。

+0

localStorage的是一个key-value存储。你在哪个关键字下保存你的对象?您是否考虑过只使用一个键并保存整个对象数组? –

回答

1

您正在寻找

for (var i=0; i<localStorage.length; i++) { 
    var key = localStorage.key(i); 
    var item = localStorage.getItem(key); 
    try { 
     item = JSON.parse(item); 
    } catch(e) { 
     console.log(key+" is not in JSON format"); 
    } 
    … 
} 
0

您也可以轻松使用Object.keys得到的localStorage的所有内容:

Object.keys(localStorage).forEach(key => { 
    console.log(key, localStorage.getItem(key)) 
}) 
+0

这也可以得到'.length'键 – Bergi

相关问题