我有一个像这样的数组:
var colors = {
1: '#FFFF00',
2: '#FF0000',
3: '#80FF00',
4: '#00FFFF',
5: '#FF00FF'
};
和Javascript一样:
var color = Math.floor(Math.random()*5)+1;
if(color == document.getElementById('awards').style.borderColor) {
var color = Math.floor(Math.random()*5)+1;
}
else {
document.getElementById('awards').style.borderColor = color;
}
但我的Javascript无效。
答案 0 :(得分:3)
您正在生成索引,但没有订阅数组。
另外,对于nitpick,{}
创建一个具有属性的对象,技术上不是Array
(尽管Array
是对象)。 []
是JavaScript中Array
的文字符号。
如果有帮助的话,也许我会写它的方式......
var getRandomColor = function() {
var colors = [
'#FFFF00',
'#FF0000',
'#80FF00',
'#00FFFF',
'#FF00FF'
];
return colors[Math.floor(Math.random() * colors.length) + 1];
}
var color = getRandomColor(),
element = document.getElementById('awards'),
borderColor = element.style.borderColor;
if (color == borderColor) {
color = getRandomColor();
}
else {
element.style.borderColor = color;
}
答案 1 :(得分:0)
你并没有真正得到随机颜色,只是在一个范围内得到随机数,你需要将代码更改为:
var color = colors[(Math.floor(Math.random() * 5) + 1).toString()];
if(color == document.getElementById('awards').style.borderColor) {
var color = colors[(Math.floor(Math.random() * 5) + 1).toString()];
}
else {
document.getElementById('awards').style.borderColor = color;
}
答案 2 :(得分:0)
如果你想编写动态CSS并在里面写一些代码和逻辑,我建议你看看http://www.dotlesscss.org/
我知道这需要时间来学习,但我提到了它,可能对某人有帮助。