Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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 如何在sessionStorage中基于数组显示div_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 如何在sessionStorage中基于数组显示div

Javascript 如何在sessionStorage中基于数组显示div,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个图像网格,当你点击一个div(它也有一个id)时,它会得到一个“active”类。然后我将使类“活动”的div的id放入sessionStorage数组中 在下一页中,我想读出会话存储中存储的id,并想显示特定的div 例如,数组包含id“banner”,类banner可见 到目前为止,我的代码是: var sections = $.map($(".active"), function(n, i){ return n.id; }); sessionStorage.se

我有一个图像网格,当你点击一个div(它也有一个id)时,它会得到一个“active”类。然后我将使类“活动”的div的id放入sessionStorage数组中

在下一页中,我想读出会话存储中存储的id,并想显示特定的div

例如,数组包含id“banner”,类banner可见

到目前为止,我的代码是:

 var sections = $.map($(".active"), function(n, i){
    return n.id;
  });

  sessionStorage.setItem("sections", JSON.stringify(sections));

  var storedSections = JSON.parse(sessionStorage.getItem("sections"));
这是将id放入数组中

我可以在我的.html文件中用以下命令读出它们:

<script type="text/javascript">
    document.getElementById("test").innerHTML = sessionStorage.getItem('sections');
</script>

但是,根据上述结果,如何显示某些div呢?

您可以这样做,迭代从存储器接收到的数组:

var divs=[“div_1”、“div_3”];
divs.forEach(函数(div){
/*JavaScript方法*/
var elem=document.getElementById(div);
elem.style.display='block';
/*jQuery方法*/
$(“#”+div.show();
});
div{
显示:无;
}

你好1
你好2
您好3

map
方法是打开一个字符串数组(id列表),然后在会话存储中设置它。如果要在这些div上设置活动类,可以使用如下数组:

$(document).ready(function(){
   JSON.parse(sessionStorage.getItem('sections')).forEach(function(id){
      $('#'+id).addClass('active');
   })
});

您想只使用jQuery吗?AngularJs可以通过使用ng-show非常干净地处理这个问题。它不一定是一个完整的产品,而且因为我在jQuery方面的经验比AngularJs丰富,所以我决定这样做。使用类来应用css是个好主意,否则它会隐藏所有的div它说divs.forEach不是一个函数这是一个适合我的解决方案。非常感谢你!
var sections = sessionStorage.getItem('sections');
$(sections).each(function(value) {
     $("#" + sections[value]).show();
});
$(document).ready(function(){
   JSON.parse(sessionStorage.getItem('sections')).forEach(function(id){
      $('#'+id).addClass('active');
   })
});