Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何保留数组的所有值?_Javascript_Jquery_Html_Arrays_Local Storage - Fatal编程技术网

Javascript 如何保留数组的所有值?

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'>

这是我的密码:

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'>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 | |[]以修复该问题()。