2017-10-12 13 views
0
私は現在、変数にフィールドの値を代入しています

HTML5のlocalStorageを

localStorage.setItem('userName', JSON.stringify(userName)); 

をここでそのアイテムを取得:

userName = document.getElementById('userName').value; 

はその後のlocalStorageし、その変数を割り当てる

var retrievedUserName = localStorage.getItem('userName'); 

次に、HTML divに項目の内容を出力しようとしています:

document.getElementById("response-heading-name2").innerHTML = retrievedUserName; 

...しかし、私はHTMLをチェックするとき、それは周りに二重引用符で文字列を出力します:なぜこれが起こっている「私の名前は」

誰もが知っていて、どのように私は二重引用符を停止することができます出現から?

答えて

6

これはローカルストレージとは関係ありません。

JSON.stringifyを使用してデータ構造をJSONに変換すると、引用符が追加されます。

ローカルストレージから取得した後、JSONをJavaScriptデータ構造に変換してJSON.parseに戻す必要があります。


JSONを使用してのポイントは何を保存するローカルストレージのみストア文字列ことができるため、文字列であることを確認することです。

入力の値を取得しているので、それは文字列であることがわかります。だから、あなたはJSONを一切使わず、最初はJSON.stringifyではありません。

+0

正確には、私も最初の段落を読んでいたように気づきました。ニース。 –

-1

localstorageは、二重引用符を使用して取得する同じデータを取得するときに、常に二重引用符で文字列データを格納します。そのためにはJSON.parseを使用してください。

var retrievedUserName = JSON.parse(localStorage.getItem('userName')); 
+0

Stringifyは間違った方向に行きます。解析する必要があります。 (5年以上前の私の答えで言ったように)。 – Quentin

+0

"localStorageは常に二重引用符で文字列データを格納します" - それはできません。あなたが入れた文字列を保存します。文字列に二重引用符が含まれていると、localStorageのデータが返されます。もしそうでなければ、それはできません。 – Quentin

+0

申し訳ありませんが、その解析を間違えました – Muthu

関連する問題