使用事件监听器(Javascript、jQuery)将BG颜色更改为随机颜色?
我正在尝试一个简单的随机背景色生成器。当用户单击按钮时,背景颜色将更改为随机RGB值。但是,我也希望按钮本身在单击时更改为随机颜色 我尝试将DOM操纵器放在事件侦听器和随机RGB函数中。但是,我不断收到以下错误消息:使用事件监听器(Javascript、jQuery)将BG颜色更改为随机颜色?,javascript,jquery,dom,events,random,Javascript,Jquery,Dom,Events,Random,我正在尝试一个简单的随机背景色生成器。当用户单击按钮时,背景颜色将更改为随机RGB值。但是,我也希望按钮本身在单击时更改为随机颜色 我尝试将DOM操纵器放在事件侦听器和随机RGB函数中。但是,我不断收到以下错误消息: script.js:19 Uncaught TypeError: Cannot set property 'backgroundColor' of undefined at randomBgColor (script.js:19) at HTMLButtonElem
script.js:19 Uncaught TypeError: Cannot set property 'backgroundColor' of undefined
at randomBgColor (script.js:19)
at HTMLButtonElement.<anonymous> (script.js:7)
randomBgColor @ script.js:19
(anonymous) @ script.js:7
在代码中,
changeColor
是按钮。将此变量名重构为按钮
,如下所示:
var button = document.getElementById("press");
button.addEventListener("click", function(){
randomBgColor();
})
function randomBgColor() {
var x = Math.floor(Math.random() * 256);
var y = Math.floor(Math.random() * 256);
var z = Math.floor(Math.random() * 256);
var bgColor = 'rgb(' + x + ',' + y + ',' + z + ')';
console.log(bgColor);
document.body.style.background = bgColor;
button.style.backgroundColor = bgColor;
}
作为奖励,下面是代码的简化版本,它实现了:
var按钮=document.getElementById(“按”);
按钮。addEventListener(“单击”,颜色);
函数randomBgColor(){
变量bgColor='rgb('+rando(255)+'、'+rando(255)+'、'+rando(255)+');
document.body.style.background=bgColor;
button.style.backgroundColor=bgColor;
}
换颜色代码>在代码中,changeColor
是按钮。将此变量名重构为按钮
,如下所示:
var button = document.getElementById("press");
button.addEventListener("click", function(){
randomBgColor();
})
function randomBgColor() {
var x = Math.floor(Math.random() * 256);
var y = Math.floor(Math.random() * 256);
var z = Math.floor(Math.random() * 256);
var bgColor = 'rgb(' + x + ',' + y + ',' + z + ')';
console.log(bgColor);
document.body.style.background = bgColor;
button.style.backgroundColor = bgColor;
}
作为奖励,下面是代码的简化版本,它实现了:
var按钮=document.getElementById(“按”);
按钮。addEventListener(“单击”,颜色);
函数randomBgColor(){
变量bgColor='rgb('+rando(255)+'、'+rando(255)+'、'+rando(255)+');
document.body.style.background=bgColor;
button.style.backgroundColor=bgColor;
}
换颜色代码>这是否回答了您的问题?简而言之,getElementsByClassName
返回一个列表(注意复数“元素”),而不是一个列表。请注意,您已经将按钮元素设置为changeColor
…我的答案令人满意吗?如果是这样,请用接受的复选标记和向上投票。谢谢这回答了你的问题吗?简而言之,getElementsByClassName
返回一个列表(注意复数“元素”),而不是一个列表。请注意,您已经将按钮元素设置为changeColor
…我的答案令人满意吗?如果是这样,请用接受的复选标记和向上投票。谢谢
var button = document.getElementById("press");
button.addEventListener("click", function(){
randomBgColor();
})
function randomBgColor() {
var x = Math.floor(Math.random() * 256);
var y = Math.floor(Math.random() * 256);
var z = Math.floor(Math.random() * 256);
var bgColor = 'rgb(' + x + ',' + y + ',' + z + ')';
console.log(bgColor);
document.body.style.background = bgColor;
button.style.backgroundColor = bgColor;
}