2013-07-16 42 views
2

我正在學習javascript,xml和html。對於作業分配,我需要從XML文件的某些節點檢索一些數據,連接數據並將連接的字符串存儲在localStorage中。我無法將連接字符串存儲在localStorage中。我相信問題出現在這兩行中 -我們如何在localStorage中存儲字符串?

var s_data = localStorage [students]; (「#clickme」)。text(「學生的名字:」+ s_data);

有人可以看看,給我一些關於如何解決它的提示嗎?預先感謝您的幫助。

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
    <title>HWK</title> 
    <meta charset="UTF-8"> 
</head> 
<body> 
    <div id="clickme" onclick="startAjax()">Click me to see all the students' first names</div> 
    <script> 
    function startAjax(){ 
     $("#clickme").text("Calling server"); 
     $.ajax({url:"hwk.xml",  
     success:callbackFunction, error:errorFunction}); 
    } 

    function callbackFunction(data,info) 
    { 
     var students = $(data).find("student first_name"); 

    try { 
    if (students && students.length) 
     { 
     var s_data = localStorage[students];  
     $("#clickme").text("Students' first names: " + s_data); 
       } 
    } 
    catch (e) { 
     if (e != window["localStorage"]) 
     alert("No local storage. Should use cookie instead."); 

    } 
    } 

    function errorFunction(data,info){ 
    $("#clickme").text("error occurred:"+info); 
    } 
    </script> 
</body> 
</html> 

回答

0

您沒有設置數據,你得到了一個不存在

的數據,我相信你想要的是這個

(你必須給一個名稱變量本地存儲,我給它的學生的名字)

localStorage['students'] = students; 
$("#clickme").text("Students' first names: " + students); 

在此之後,如果你想類似於你有什麼

之前,你可以有你的get
var s_data = localStorage['students']; 
+0

嗨。我使用了你推薦的兩行,並得到以下內容:學生的名字:[object Object]。 – user2203774

+0

這是因爲學生是一個jQuery集合,並沒有字符串表示,因爲裏面可能有多個元素。例如嘗試學生[0],這會給你第一個元素 – sahmed24

+0

我試過學生[0],它給了我:學生的名字:[object Element]。由於學生是一個jQuery集合,有沒有辦法讓我把它作爲一個字符串存儲在localStorage中? (對於我的轉儲問題,我很抱歉。) – user2203774

0

我看不到任何地方你的代碼,你存儲的東西localStorage。您正嘗試檢索localStorage[students],但那裏沒有任何內容。

還請注意,您只能存儲localStorage中的字符串。您在一個點上將jQuery結果分配給students。如果您嘗試將其存儲在localStorage中,那麼它會失敗,因爲它是jQuery obects的數組。

+0

嗨。我認爲這一行會給我一個字符串 - 「var students = $(data).find(」student first_name「);」它給了我一個字符串中的連接數據。你能讓我知道我錯過了什麼嗎?我很困惑。 – user2203774

+0

我想你會發現它給了你一個XML節點的數組。你需要用'.text()'提取文本。我沒有看到你的數據,所以我有點失明。然而,問題是關於將數據存儲在'localStorage'中,我認爲這已經被Arun充分回答。如果您想了解使用jQuery解析XML,請提出另一個問題。 – 2013-07-16 04:05:02

4

可以使用setItem()設置一個值localStoragegetItem()檢索它

例:

localStorage.setItem('mykey', 'somevalue') 

演示:Fiddle

+0

我在小提琴中嘗試過這些,但沒有奏效。除了「呼叫服務器」消息,我什麼也沒有得到。 – user2203774

+0

@ user2203774這是使用的瀏覽器 –

1

localStorage.setItem('your_data_key', 'your_data')

相關問題