Javascript 如何保留数组的所有值?
这是我的密码: CSS:Javascript 如何保留数组的所有值?,javascript,jquery,html,arrays,local-storage,Javascript,Jquery,Html,Arrays,Local Storage,这是我的密码: CSS: li{ cursor: pointer; } li:hover{ background-color: #eee; } <ul> <li><a href='#1'>first post</a></li> <li><a href='#2'>second post</a></li> <li><a href='#3'>
li{
cursor: pointer;
}
li:hover{
background-color: #eee;
}
<ul>
<li><a href='#1'>first post</a></li>
<li><a href='#2'>second post</a></li>
<li><a href='#3'>third post</a></li>
</ul>
var seen = [];
$('li').on('click', function(){
$(this).css('background-color','pink');
// storing into localstorage
if (typeof(Storage) !== "undefined") {
if(!seen.includes($(this).find('a').attr('href'))){
seen.push($(this).find('a').attr('href'));
// Set to localStorage
localStorage.setItem('seen', JSON.stringify(seen));
}
}
});
var seenAlready = JSON.parse(localStorage.getItem('seen'));
$.each(seenAlready,function(index, value){
$("a[href="+'"'+value+'"'+"]").parent().css('background-color','pink');
});
HTML:
li{
cursor: pointer;
}
li:hover{
background-color: #eee;
}
<ul>
<li><a href='#1'>first post</a></li>
<li><a href='#2'>second post</a></li>
<li><a href='#3'>third post</a></li>
</ul>
var seen = [];
$('li').on('click', function(){
$(this).css('background-color','pink');
// storing into localstorage
if (typeof(Storage) !== "undefined") {
if(!seen.includes($(this).find('a').attr('href'))){
seen.push($(this).find('a').attr('href'));
// Set to localStorage
localStorage.setItem('seen', JSON.stringify(seen));
}
}
});
var seenAlready = JSON.parse(localStorage.getItem('seen'));
$.each(seenAlready,function(index, value){
$("a[href="+'"'+value+'"'+"]").parent().css('background-color','pink');
});
正如您在中所看到的,粉红色将仅用于一个元素(重新加载页面后)。你也知道,这是因为这一行:
var seen = [];
如何处理此问题并保留该数组的所有值?我对您遇到的问题有点困惑。我运行了你的JSFIDLE,点击了2个链接,刷新了页面,它们都被高亮显示了working@James古怪的因为它对我来说完全不同。@rakwaht this^!它不起作用,因为它只记得上一次访问页面时单击的链接,而不记得之前的链接(例如,如果单击两个链接,重新加载,单击第三个链接,重新加载,则只显示突出显示的第三个链接)。您必须添加
seen=seenAlready | |[]代码>以修复该问题()。