localStorage getItem 问题
localStorage getItem issue
我的页面上有多个输入,并通过单击按钮将来自它们的数据存储在 ... 中(由于文本是输入和存储的,因此被认为不会从那些 中消失跨度 > 字段)。
var newDate = document.getElementById('event_date');//my input
var storageNewDate = newDate.value;//my text inside <input> which transfers it to <span>
localStorage.setItem('Date', storageNewDate);//the data is stored
但是我无法从 localStorage 中检索存储的数据。我的 Web 开发人员工具显示存储的数据存在,但是当我打开或重新加载页面时,我的 字段为空。
var insideSpanTags = document.getElementsByClassName("spanEvent");//all my <spans>
insideSpanTags.innerHTML = localStorage.getItem('Date');// I want my stored data to be shown there
那么,每次刷新或重新加载页面时,我如何才能在 标签中获取我存储的数据?
您需要循环选择器
var insideSpanTags = document.getElementsByClassName("spanEvent");
for(var i=0; i<insideSpanTags.length; i++){
insideSpanTags[i].innerHTML = localStorage.getItem('Date');
}
因为 insideSpanTags
是所有元素的数组集合。
由于您使用的是对象数组,因此需要将您的对象数组JSON.stringify
放入 localStorage。比检索值使用 JSON.parse
:
var insideSpanTags = document.getElementsByClassName("spanEvent");
var events = [
{
'date': '7-1-2015',
'event': 'Event Title',
'participants': 'John, Robert',
'description': 'Football'
},
{
'date': '23-1-2015',
'event': 'Event Title 2',
'participants': 'Peter, Rob',
'description': 'Basketball'
},
];
// On Save, use this to store your events:
localStorage.evts = JSON.stringify( events );
// Now events are stored in LS
// After it's saved but also while first reading use:
var storedEvts = JSON.parse( localStorage.evts );
console.log( storedEvts );
// Just to test
storedEvts.forEach(function(el, idx){
insideSpanTags[idx].innerHTML = el.date;
});
// Result:
//> 7-1-2015
//> 23-1-2015
我的页面上有多个输入,并通过单击按钮将来自它们的数据存储在 ... 中(由于文本是输入和存储的,因此被认为不会从那些 中消失跨度 > 字段)。
var newDate = document.getElementById('event_date');//my input
var storageNewDate = newDate.value;//my text inside <input> which transfers it to <span>
localStorage.setItem('Date', storageNewDate);//the data is stored
但是我无法从 localStorage 中检索存储的数据。我的 Web 开发人员工具显示存储的数据存在,但是当我打开或重新加载页面时,我的 字段为空。
var insideSpanTags = document.getElementsByClassName("spanEvent");//all my <spans>
insideSpanTags.innerHTML = localStorage.getItem('Date');// I want my stored data to be shown there
那么,每次刷新或重新加载页面时,我如何才能在 标签中获取我存储的数据?
您需要循环选择器
var insideSpanTags = document.getElementsByClassName("spanEvent");
for(var i=0; i<insideSpanTags.length; i++){
insideSpanTags[i].innerHTML = localStorage.getItem('Date');
}
因为 insideSpanTags
是所有元素的数组集合。
由于您使用的是对象数组,因此需要将您的对象数组JSON.stringify
放入 localStorage。比检索值使用 JSON.parse
:
var insideSpanTags = document.getElementsByClassName("spanEvent");
var events = [
{
'date': '7-1-2015',
'event': 'Event Title',
'participants': 'John, Robert',
'description': 'Football'
},
{
'date': '23-1-2015',
'event': 'Event Title 2',
'participants': 'Peter, Rob',
'description': 'Basketball'
},
];
// On Save, use this to store your events:
localStorage.evts = JSON.stringify( events );
// Now events are stored in LS
// After it's saved but also while first reading use:
var storedEvts = JSON.parse( localStorage.evts );
console.log( storedEvts );
// Just to test
storedEvts.forEach(function(el, idx){
insideSpanTags[idx].innerHTML = el.date;
});
// Result:
//> 7-1-2015
//> 23-1-2015