Javascript 为什么';这个不能换成不同的颜色吗?

Javascript 为什么';这个不能换成不同的颜色吗?,javascript,html,Javascript,Html,我遇到了一个问题,无法让我的横幅从sessionStorage中存储的内容更改其颜色。我修复了这个问题,但是有一个bug,如果你从未更改过主题,sessionStorage中就不会有任何内容,因此横幅将所有颜色设置为黑色。我修正了它,使横幅现在是加载时的默认颜色,但它不会再改变了 我为if语句尝试了多个不同的参数 以下是检测代码: 函数checkBanner(){ var textColor=sessionStorage.getItem('textColor'); var backgroundC

我遇到了一个问题,无法让我的横幅从sessionStorage中存储的内容更改其颜色。我修复了这个问题,但是有一个bug,如果你从未更改过主题,sessionStorage中就不会有任何内容,因此横幅将所有颜色设置为黑色。我修正了它,使横幅现在是加载时的默认颜色,但它不会再改变了

我为if语句尝试了多个不同的参数

以下是检测代码:

函数checkBanner(){
var textColor=sessionStorage.getItem('textColor');
var backgroundColor=sessionStorage.getItem('bgColor');
/*
在以前从未切换过主题时设置颜色,但在切换主题时不切换
|
|
v
*/
if(sessionStorage.textColor!=“黑色”| |“白色”){
var textColor='黑色';
document.getElementById('banner').style.color=textColor;
}否则{
document.getElementById('banner').style.color=textColor;
}
if(sessionStorage.bgColor!=“红色”| |“紫色”){
var backgroundColor='红色';
document.getElementById('banner').style.backgroundColor=backgroundColor;
}否则{
document.getElementById('banner').style.backgroundColor=backgroundColor;
}
}
checkBanner();
以下是切换开关代码:

const-toggleSwitch=document.querySelector('.theme-switch-input[type=“checkbox”]”);
功能切换主题(e){
如果(例如,选中目标){
var r=confirm(“您确定要打开灯光模式吗?(它会伤害我的眼睛)”);
如果(r==true){
document.documentElement.setAttribute('data-theme','light');
localStorage.setItem('theme','light');//添加此
setItem('bgColor','purple');
setItem('textColor','white');
document.getElementById('banner').src=document.getElementById('banner').src
}否则{
toggleSwitch.checked=false;
}
}否则{
document.documentElement.setAttribute('data-theme','dark');
localStorage.setItem('theme','dark');//添加此
setItem('textColor','black');
setItem('bgColor','red');
document.getElementById('banner').src=document.getElementById('banner').src
}
}
const currentTheme=localStorage.getItem('theme')?localStorage.getItem('theme'):null;
如果(当前主题){
document.documentElement.setAttribute('data-theme',currentTheme);
如果(currentTheme==='light'){
toggleSwitch.checked=true;
}
}
toggleSwitch.addEventListener('change',switchTheme,false);

当您更改主题时,横幅会自动刷新,因此这不是问题。在加载网站时,它应该自动为红色背景和黑色文本,但当您更改主题时,它应该会更改。

我找到了解决方法。我只是在CSS中设置默认值,然后再修改它。代码如下:


a:链接{
颜色:白色;
}
a:参观了{
颜色:白色;
}
.横幅{
背景色:红色;
颜色:黑色;
}
看看我们的频道!帮助恢复网络中立!参观
函数checkBanner(){
var textColor=sessionStorage.getItem('textColor');
var backgroundColor=sessionStorage.getItem('bgColor');
document.getElementById('banner').style.color=textColor;
document.getElementById('banner').style.backgroundColor=backgroundColor;
}
checkBanner();

发布上述代码的JSF摘要,以便我们可以查看它,特别是html会很有帮助,css。@Calvinnues
sessionStorage.x
sessionStorage.getItem('x')
同意@Calvinnues,Javascript的工作方式与某些语言不同。Javascript读取
if(sessionStorage.textColor!==“black”| |“white”)
as,如果sessionStorage.textColor不等于“black”,或者“white”不是一个真正的语句,那么:……谢谢@Barmar我从未见过这种用法,也不知道。感谢您提供的信息当我测试它时,它是sessionStorage.getItem('x')(我忘了把它改回那个),但不是第二件事。我试试看