use*_*210 16 javascript jquery local-storage
我试图在本地存储中设置一组变量,但函数没有运行,我试图获得值,但没有运气,如何保存本地存储中的字段?
function setPerson(){
var person = { 'name': getElementById('name'), 'photo': getElementById('photo')};
// Put the object into the storage
alert(person);
localStorage.setItem('person', JSON.stringify(person));
};
Run Code Online (Sandbox Code Playgroud)
HTML 在HTML中,我从字段中将值放入标记中并填充它们,但是当我尝试获取它们并保存它们时,没有任何事情发生......
我还尝试在那里输出固定值,然后显示警报,但是它只显示对象而不是值
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
alert('retrievedObject: ', JSON.parse(retrievedObject));;
Run Code Online (Sandbox Code Playgroud)
Jon*_*han 17
你可以像这样使用localStorage:
// Retrieve your data from locaStorage
var saveData = JSON.parse(localStorage.saveData || null) || {};
// Store your data.
function saveStuff(obj) {
saveData.obj = obj;
// saveData.foo = foo;
saveData.time = new Date().getTime();
localStorage.saveData = JSON.stringify(saveData);
}
// Do something with your data.
function loadStuff() {
return saveData.obj || "default";
}
Run Code Online (Sandbox Code Playgroud)
首先,您应该使用console而不是alert.
而且,如果您想在某处使用检索到的对象,最好将其存储在变量中:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
localStorage.setItem('testObject', JSON.stringify(testObject));
var retrievedObject = JSON.parse(localStorage.getItem('testObject'));
console.log('retrievedObject: ', retrievedObject);
Run Code Online (Sandbox Code Playgroud)
问题是getElementById返回一个 HTML 元素,它是一个对象。
然后,JSON.stringify将尝试迭代其自身的属性。
但可能它们没有(除非您手动添加它们)。
既然你说它们是字段,你可以尝试保存它value:
var person = {
name: document.getElementById('name').value,
photo: document.getElementById('photo').value
};
Run Code Online (Sandbox Code Playgroud)