将第二个变量传递给localStorage

时间:2020-02-06 14:53:08

标签: javascript jquery local-storage

我无法将第二个变量传递给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);

为什么?

1 个答案:

答案 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>应用程序>存储>本地存储