Javascript 如果语句不使用颜色代码

Javascript 如果语句不使用颜色代码,javascript,if-statement,background-color,color-codes,Javascript,If Statement,Background Color,Color Codes,我的代码是:只要按下“a”键,背景就会改变。这并没有发生,我认为这是因为if语句中的颜色代码 var colors=['ce0e0e'、'079b0c'、'3e3fd6'//红,绿,蓝 函数changeBackground(){ 文件。书写(“使用“a”键更改背景”); var colorAtRandom=colors[Math.floor(Math.random()*colors.length)]; document.body.style.backgroundColor=colorAtRan

我的代码是:只要按下“a”键,背景就会改变。这并没有发生,我认为这是因为if语句中的颜色代码

var colors=['ce0e0e'、'079b0c'、'3e3fd6'//红,绿,蓝
函数changeBackground(){
文件。书写(“使用“a”键更改背景”);
var colorAtRandom=colors[Math.floor(Math.random()*colors.length)];
document.body.style.backgroundColor=colorAtRandom;
document.getElementById('button')。className='hidden'
}
window.addEventListener('keydown',checkKey,false);
功能检查键(键){
如果(key.keyCode==65){
if(colorAtRandom!=“ce0e0e”){
changeBackground();
}否则{
警报(“背景为红色”);
}
}
}
。隐藏{
显示:无;
}
.表演{
显示:块;
}

问题在范围内。在函数checkKey()中找不到变量colorAtRandom。让它全球化,它就会起作用

第二个问题是事件侦听器不工作。我更改了它,以便在按钮被剪切时添加它。因为
document.write
创建了一个新文档,所以加载时创建的eventlistener将丢失。因此,不建议这样做

这应该可以解决它


测试员
变量颜色=['#ce0e0e'、'#079b0c'、'#3e3fd6']//红,绿,蓝
var colorAtRandom=colors[Math.floor(Math.random()*colors.length)];//此变量必须是全局变量。
函数changeBackground(){
//document.write(“使用“a”键更改背景”);不建议使用document.write。
colorAtRandom=colors[Math.floor(Math.random()*colors.length)];//选择了新的随机颜色。将其设置为全局以消除范围
document.body.style.backgroundColor=colorAtRandom;
document.getElementById('button')。className='hidden';
addEventListener('keydown',checkKey,false);//按下按钮时添加事件侦听器。
}
功能检查键(键){
控制台日志(“测试”);
如果(key.keyCode==65){
if(colorAtRandom!=“ce0e0e”){
changeBackground();
}否则{
警报(“背景为红色”);
changeBackground();//在警报后更改背景,使其不会卡住。
}
}
} 
.隐藏{
显示:无;
}
.表演{
显示:块;
}

问题在范围内。在函数checkKey()中找不到变量colorAtRandom。让它全球化,它就会起作用

第二个问题是事件侦听器不工作。我更改了它,以便在按钮被剪切时添加它。因为
document.write
创建了一个新文档,所以加载时创建的eventlistener将丢失。因此,不建议这样做

这应该可以解决它


测试员
变量颜色=['#ce0e0e'、'#079b0c'、'#3e3fd6']//红,绿,蓝
var colorAtRandom=colors[Math.floor(Math.random()*colors.length)];//此变量必须是全局变量。
函数changeBackground(){
//document.write(“使用“a”键更改背景”);不建议使用document.write。
colorAtRandom=colors[Math.floor(Math.random()*colors.length)];//选择了新的随机颜色。将其设置为全局以消除范围
document.body.style.backgroundColor=colorAtRandom;
document.getElementById('button')。className='hidden';
addEventListener('keydown',checkKey,false);//按下按钮时添加事件侦听器。
}
功能检查键(键){
控制台日志(“测试”);
如果(key.keyCode==65){
if(colorAtRandom!=“ce0e0e”){
changeBackground();
}否则{
警报(“背景为红色”);
changeBackground();//在警报后更改背景,使其不会卡住。
}
}
} 
.隐藏{
显示:无;
}
.表演{
显示:块;
}
首先,将变量设置为全局变量

var colors=['ce0e0e'、'079b0c'、'3e3fd6'//红,绿,蓝
彩色兰多姆变种;
函数changeBackground(){
//文件。书写(“使用“a”键更改背景”);
colorAtRandom=colors[Math.floor(Math.random()*colors.length)];
document.body.style.backgroundColor=colorAtRandom;
document.getElementById('button')。className='hidden'
}
window.addEventListener('keydown',checkKey,false);
功能检查键(键){
console.log(key.keyCode);
如果(key.keyCode==65){
if(colorAtRandom!=“ce0e0e”){
changeBackground();
}否则{
log('背景为红色');
}
}
}
。隐藏{
显示:无;
}
.表演{
显示:块;
}
首先,将变量设置为全局变量

var colors=['ce0e0e'、'079b0c'、'3e3fd6'//红,绿,蓝
彩色兰多姆变种;
函数changeBackground(){
//文件。书写(“使用“a”键更改背景”);
colorAtRandom=colors[Math.floor(Math.random()*colors.length)];
document.body.style.backgroundColor=colorAtRandom;
document.getElementById('button')。className='hidden'
}
window.addEventListener('keydown',checkKey,false);
功能检查键(键){
console.log(key.keyCode);
如果(key.keyCode==65){
if(colorAtRandom!=“ce0e0e”){
changeBackground();
}否则{
log('背景为红色');
}
}
}
。隐藏{
显示:无;
}
.表演{
显示:块;
}

为什么要编辑@ibrahim mahir,这会使复制/粘贴测试方式更加麻烦。在加载页面后运行的代码中不应使用
document.write()
。请参阅@JanwillemHuishing代码已包装的事实