如何用Javascript改变CSS样式?

时间:2011-05-01 01:56:03

标签: javascript

我有一个像这样的数组:

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无效。

3 个答案:

答案 0 :(得分:3)

您正在生成索引,但没有订阅数组。

jsFiddle

另外,对于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;
}

jsFiddle

答案 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/
我知道这需要时间来学习,但我提到了它,可能对某人有帮助。