Javascript 如何在sessionStorage中基于数组显示div
我有一个图像网格,当你点击一个div(它也有一个id)时,它会得到一个“active”类。然后我将使类“活动”的div的id放入sessionStorage数组中 在下一页中,我想读出会话存储中存储的id,并想显示特定的div 例如,数组包含id“banner”,类banner可见 到目前为止,我的代码是: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
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');
})
});