2012-01-21 116 views
0

我上下打量,發現以恢復localStorage的鍵值對,並以表/ div的/列表顯示它們的/ etc幾個引用,但對沒有運氣我結束。顯示保存的localStorage鍵

我已經能夠使用JSON-字符串化的鍵值對保存爲從表單輸入字段串到localStorage的,並已與Safari的網絡督察/資源觀衆證實如此。

我的問題顯示在表/ DIV /列表中的鍵值對的表示,使得用戶可以在保存鍵點擊並重新加載值到表單中。已保存的密鑰將不會加載到updateJobsList()的div中,但控制檯不會引發錯誤,因此肯定會出現錯誤。

下面是我的js文件相關的示例代碼。

function updateJobsList() { 
var jobs = localStorage.length 
var s = '<h2>Jobs</h2>'; 
s+= '<ul>'; 
for (var i=0;i<jobs;i++) { 
    var jobName = localStorage.key(i); 
    s+= '<li>'+ 
     '<div style="float:right;">'+ 
     '<input type="button" value="Load" onclick="readLocal(\''+jobName+'\');"/'+'> '+ 
     '<input type="button" value="Delete" onclick="deleteLocal(\''+jobName+'\');"/'+'> '+ 
     '</div>'+ 
     '<strong>'+jobName+'</strong>'+ 
     '</li>'; 
    } 
    $('jobs').innerHTML = s+'</ul>'; 
} 

回答

0

您試圖通過localStorage作爲迭代數組循環訪問,但localStorage中的值使用名稱/值對存儲爲關聯數組。通過一個對象或關聯數組循環的方法有點不同:

 


    var storage = window.localStorage; 
    for (var key in storage) { 
     var jobName= storage[key]); 
     // execute the rest of your code 
    } 

 

權,這樣可以讓你訪問該對象的值,但你仍然需要插入你的HTML(存儲在您的變量「s」 )到DOM中。您的HTML定義元素,並指定一個id:

 


<div id="jobsList"></div> 

 

然後,假設你使用jQuery,你將填補HTML元素像這樣:

 


$("#jobsList").html(s); 

 
+0

我改變了我的循環到你所描述的,而不是顯示鍵值對的關鍵,它給了我JSON字符串的值。 然而,我看到的東西我沒有正確的,我改變了'$(jobsList)的.html();''到$( 「#jobsList」)HTML()'和我當前腳本開始顯示在按鍵localStorage的。 謝謝! – barelybenjamin

0
$(jobs).html(); 

是你在找什麼假設你正在使用jQuery。如果它包含單引號或雙引號,請確保您轉義jobName

+0

HTTP://api.jquery .com/html/ – Raghu

+0

那麼理想情況下,這是最簡單的方法來使其工作? '$(工種)的.html(工作名);' 如果是的話,那也不能正常工作。 – barelybenjamin