用Javascript实现背景色自动循环

用Javascript实现背景色自动循环,javascript,css,html,colors,rotation,Javascript,Css,Html,Colors,Rotation,我在我的网站上设置了3个div,目前我正在使用CSS3通过改变背景颜色来突出显示每个div 5秒钟。因此,第一个div高亮显示5秒,然后是第二个div,然后是第三个div。我可以用Javascript实现同样的功能吗 我的html是 <a href=""><div class="highlight" id="caption2"> Text1 </div></a> <a href=""><div class="highlight"

我在我的网站上设置了3个div,目前我正在使用CSS3通过改变背景颜色来突出显示每个div 5秒钟。因此,第一个div高亮显示5秒,然后是第二个div,然后是第三个div。我可以用Javascript实现同样的功能吗

我的html是

<a href=""><div class="highlight" id="caption2">
Text1
</div></a>
<a href=""><div class="highlight" id="caption3">
Text2</div></a>
<a href="">
<div class="highlight" id="caption4">
Text3</div></a>
CSS


当然!没有比这更简单的了:

var divs = document.getElementsByTagName("div")

for(var i = 0; i < divs.length; i++) {
    setTimeout(function(n){
        divs[n].className = "highlight";
    }, i * 1000, i);
}

更新


您的主要问题是css选择器的特殊性。。。ID的速率高于类。另一件事是,你误解了我的解决方案。阅读一些关于Sizzle选择器引擎的信息,它是在jQuery中构建的,应该会对您有所帮助。

您能把代码放在这里吗?非常感谢!这很好,除了,我希望每个div单独高亮显示,所以第一个div高亮显示,然后随着第二个div高亮显示,它恢复正常,然后第三个div也一样。因此,活动状态在div中循环。谢谢@yckart@KieranVyas要得到好的答案,请提出好的问题;)好的,对不起!甚至我更新的问题都很糟糕!很抱歉我需要循环吗?因此,一旦完成,它将返回到第一个div。谢谢你抽出时间!:D@yckart@KieranVyas你确定你不能自己摆弄吗?我试过了,我只是有点问题。我无法让脚本为我的特定div而不是所有div工作@卡丁车
#caption2 {
    position:absolute;
    top:10px;
    left:-20px;
    z-index:50;
    padding-left:10px;
    padding-right:20px;
    padding-top:15px;
    padding-bottom:15px;
    color:#fff;
    font-family: 'Droid Sans', sans-serif;
    overflow:hidden;

}
#caption3 {
    position:absolute;
    top:70px;
    left:-20px;
    z-index:70;
    padding-left:10px;
    padding-right:20px;
    padding-top:15px;
    padding-bottom:15px;
    color:#fff;
    font-family: 'Droid Sans', sans-serif;
        overflow:hidden;


}
#caption4 {
    position:absolute;
    top:130px;
    left:-20px;
    z-index:50;
    padding-left:10px;
    padding-right:20px;
    padding-top:15px;
    padding-bottom:15px;
    color:#fff;
    font-family: 'Droid Sans', sans-serif;
        overflow:hidden;


}

.highlight {
    background-color:#000;
}
.caption {
    background-color:#f1583c;   
    color:yellow;   
}
var divs = document.getElementsByTagName("div")

for(var i = 0; i < divs.length; i++) {
    setTimeout(function(n){
        divs[n].className = "highlight";
    }, i * 1000, i);
}
$("div").each(function(i){
    var self = this;
    setTimeout(function(){
        self.className = "highlight";
    }, i * 1000);
});