我想在HTML5中存储JavaScript对象localStorage,但我的对象显然正在转换为字符串.
我可以使用存储和检索原始JavaScript类型和数组localStorage,但对象似乎不起作用.他们应该吗?
这是我的代码:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testObject: ' + typeof testObject);
console.log('testObject properties:');
for (var prop in testObject) {
console.log(' ' + prop + ': ' + testObject[prop]);
}
// Put the object into storage
localStorage.setItem('testObject', testObject);
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('typeof retrievedObject: ' + typeof retrievedObject);
console.log('Value of retrievedObject: ' + retrievedObject);
Run Code Online (Sandbox Code Playgroud)
控制台输出是
typeof testObject: object
testObject properties:
one: 1 …Run Code Online (Sandbox Code Playgroud) 我将值从我的下拉框保存到localStorage.但是,我不希望下次用户从下拉菜单中选择时使用新信息覆盖数据.我只想在localStorage没有覆盖的情况下继续为我增值.任何帮助将不胜感激.
JavaScript代码:
function reason(){
var dropd = document.getElementById("savedrop").value;
var drophistory = JSON.parse(localStorage.getItem("savedrop"));
localStorage.setItem("reason", JSON.stringify(dropd));
}
Run Code Online (Sandbox Code Playgroud)
HTML代码:
<select id="savedrop">
<option value="" disabled="disabled" selected="selected">Please choose one</option>
<option value="one">1</option>
<option value="two">2</option>
<option value="three">3</option>
</select>
<input id="btnbutton" class="btn" type="button" onClick="reason()" value="Submit">
Run Code Online (Sandbox Code Playgroud)