Javascript 如何修复背景色分配错误?
将Javascript 如何修复背景色分配错误?,javascript,css,reactjs,Javascript,Css,Reactjs,将backgroundColor分配给随机div时,会出现一个错误:“TypeError:无法设置未定义的属性'backgroundColor'”(82行) 79 | const randomNumber=Math.floor(Math.random()*25); 80 | 81 | 82 |决斗[randomNumber].style.backgroundColor='blue'; render(){ const duel=['duel1','duel2','duel3','duel4',
backgroundColor
分配给随机div
时,会出现一个错误:“TypeError:无法设置未定义的属性'backgroundColor'”(82行)
79 | const randomNumber=Math.floor(Math.random()*25);
80 |
81 |
82 |决斗[randomNumber].style.backgroundColor='blue';
render(){
const duel=['duel1','duel2','duel3','duel4','duel5','duel6',
‘决斗七’、‘决斗八’、‘决斗九’、‘决斗十’、‘决斗十一’、‘决斗十二’、‘决斗十三’,
“决斗14”、“决斗15”、“决斗16”、“决斗17”、“决斗18”、“决斗19”、“决斗20”,
“决斗21”、“决斗22”、“决斗23”、“决斗24”、“决斗25”];
const randomNumber=Math.floor(Math.random()*25);
决斗[randomNumber].style.backgroundColor='blue';
返回(
玩
这里是25区
)
}
有什么问题吗?duel既不是DOM元素,也不是带有
style
属性的React元素;这是一根绳子
render(){
const duel = ['duel1', 'duel2', 'duel3', 'duel4', 'duel5', 'duel6',
'duel7', 'duel8', 'duel9', 'duel10', 'duel11', 'duel12', 'duel13',
'duel14', 'duel15', 'duel16', 'duel17', 'duel18', 'duel19', 'duel20',
'duel21', 'duel22', 'duel23', 'duel24', 'duel25'];
const randomNumber = Math.floor(Math.random() * 25);
const elementClassName = duel[randomNumber]
document.getElementsByClassName(elementClassName).style.backgroundColor='blue';
return (
<div>
<div>
<button>Play</button>
</div>
<div className='duel25'>
here it is 25 div
</div>
</div>
)
}
如果要随机更改某些元素的背景色,应尝试:
)duel
)duel[randomNumber]更改样式。style.backgroundColor='blue'代码>
我认为这更符合您的目的,您需要向div添加某种标识符,然后getElementsByClassName(在类名的情况下)来获取实际的元素,而不仅仅是一个字符串
render(){
const duel = ['duel1', 'duel2', 'duel3', 'duel4', 'duel5', 'duel6',
'duel7', 'duel8', 'duel9', 'duel10', 'duel11', 'duel12', 'duel13',
'duel14', 'duel15', 'duel16', 'duel17', 'duel18', 'duel19', 'duel20',
'duel21', 'duel22', 'duel23', 'duel24', 'duel25'];
const randomNumber = Math.floor(Math.random() * 25);
const elementClassName = duel[randomNumber]
document.getElementsByClassName(elementClassName).style.backgroundColor='blue';
return (
<div>
<div>
<button>Play</button>
</div>
<div className='duel25'>
here it is 25 div
</div>
</div>
)
}
render(){
const duel=['duel1','duel2','duel3','duel4','duel5','duel6',
‘决斗七’、‘决斗八’、‘决斗九’、‘决斗十’、‘决斗十一’、‘决斗十二’、‘决斗十三’,
“决斗14”、“决斗15”、“决斗16”、“决斗17”、“决斗18”、“决斗19”、“决斗20”,
“决斗21”、“决斗22”、“决斗23”、“决斗24”、“决斗25”];
const randomNumber=Math.floor(Math.random()*25);
const elementClassName=决斗[随机数]
document.getElementsByClassName(elementClassName).style.backgroundColor='blue';
返回(
玩
这里是25区
)
}
duel[randomNumber]不是元素。它只是一个字符串。而且,由于duel数组索引从0到24,因此获得这样的随机数不是一个好主意。试试elementClassName='duel'+randomNumber