在一段时间后更改 div 的背景颜色



嘿,我正在尝试更改div的背景颜色。我写了一个脚本来改变身体的背景颜色。代码如下

<script>
colors = new Array('black', 'red', 'green');
function annoyingEffect(tic){
tic %= colors.length;
document.bgColor = colors[tic];
setTimeout("annoyingEffect("+(tic+1)+")", 2000);}
</script>
<body onload="annoyingEffect(0)">
</body>

但是如果我尝试添加一个div 并在其中插入 onload="annoyingEffect(0)" 函数,它不起作用。我错过了什么?

下面是一个示例(http://jsfiddle.net/NSJDR/5/)如何更改正文和<div>

<html>
    <head>
        <script type="text/javascript">
            colors = new Array('blue', 'red', 'green', 'yellow', 'brown', 'orange');
            function annoyingEffect(tic){
                tic %= colors.length;
                document.bgColor = colors[tic];
                setTimeout("annoyingEffect("+(tic+1)+")", 1000);
            }
            function annoyingEffectOnDiv(tic, divId){
                tic %= colors.length;
                divVar = document.getElementById(divId);
                divVar.style.background = colors[tic];
                setTimeout("annoyingEffectOnDiv("+(tic+1)+", '"+divId+"')", 1000);
            }
        </script>
    </head>
    <body onload="annoyingEffect(0); annoyingEffectOnDiv(2, 'divtest');">
        <div id="divtest">
            <label>HELLOOOOOA :D</label>
        </div>
    </body>
</html>​

我认为这条线

setTimeout("annoyingEffect("+(tic+1)+")", 2000);

应该是

setTimeout(function(){ annoyingEffect(tic+1); }, 2000);

函数参数不作为字符串传递

参见演示:http://jsfiddle.net/rathoreahsan/Fr6tW/

添加您的 JS:

document.getElementById('customid').style.background = colors[tic]; *your div id*

.HTML

<body onload="annoyingEffect(0)">
    <div id="customid"></div>
</body> 

爪哇语

colors = new Array('black', 'red', 'green');
function annoyingEffect(tic){
    tic %= colors.length;
    //document.bgColor = colors[tic];
    document.getElementById('customid').style.background = colors[tic];   
    setTimeout("annoyingEffect("+(tic+1)+")", 2000);}