我无法将第二个变量传递给LocalStorage。
在第一页上,我有2个div,单击它们之后,我想传递各种变量:
$(".questionAnswerItem8447").click(function (val) {
localStorage.setItem('kasaVisible', val);
});
$(".questionAnswerItem8448").click(function (va2) {
localStorage.setItem('autaVisible', va2);
});
然后,在第二页上,我想引用这些变量。
if (localStorage.getItem('kasaVisible')) {
kasaNagrody.classList.add('activeContainer');
autaNagrody.classList.add('noActiveContainer');
console.log('kasa works');
} else if (localStorage.getItem('autaVisible')) {
kasaNagrody.classList.add('noActiveContainer');
autaNagrody.classList.add('activeContainer');
console.log('auto works');
}
不幸的是,无论我单击第一页的哪个div,第二页始终显示来自第一页的消息,如果
console.log('kasa works');
好像他根本没看到它:
localStorage.setItem('autaVisible', va2);
为什么?
答案 0 :(得分:0)
您正在if else
语句中运行代码。
因此,如果您在某个时候单击了第一个div,那么您已在本地存储中设置了第一个div的值。因此,它将命中if语句,并且localStorage.getItem('kasaVisible')
将为true。 if块中的代码将运行,您的代码将永远不会到达else if
块。
尝试使用2条if语句代替:
if (localStorage.getItem('kasaVisible')) {
kasaNagrody.classList.add('activeContainer');
autaNagrody.classList.add('noActiveContainer');
console.log('kasa works');
}
if (localStorage.getItem('autaVisible')) {
kasaNagrody.classList.add('noActiveContainer');
autaNagrody.classList.add('activeContainer');
console.log('auto works');
}
或者,如果单击了第二个div(如果这是您想要的行为),则可以查看使用localStorage.removeItem(item)
清除第一个值。
注意:您可以在chrome开发工具中查看您的localStorage。打开devtools>应用程序>存储>本地存储