每2000毫秒更改Div的类名

时间:2013-11-07 17:03:36

标签: jquery html

我有四个div,其中第一个div有一个“选中”类。我想删除该类,并在2000毫秒后将其附加到下一个div二号。但是在接下来的2000毫秒之后,我需要删除该类,并将其附加到div编号3,依此类推。但这不起作用。任何线索?

的JavaScript

var sel = "";
function aaa() {
    $('#holder > div').each(function () {
        var isSelected = $(this).hasClass("selected");
        if (isSelected) {
            var selectedId = $(this).attr('id');
            console.log(selectedId);
            $(this).removeClass("selected");
            $("#" + selectedId).next().addClass("selected");
        }
    });
}

setInterval(aaa, 5000);

HTML

<div id="holder">
    <div id="one" class="selected"></div>
    <div id="two"></div>
    <div id="three"></div>
    <div id="four"></div>
</div>

3 个答案:

答案 0 :(得分:1)

您在此行中输入错误“

$(this).removeClass("selectedP");

此外,您可以直接访问所选的div:

function aaa() {
  var $selected = $("#holder > .selected");
  var $next = $selected.next();

  // Wrap around
  if($next.length === 0) {
    $next = $("#holder > div:first-child");
  }

  $selected.removeClass("selected");
  $next.addClass("selected");
}

答案 1 :(得分:1)

在document.ready()函数中使用jQuery:

while(someConditionThatWillStopTheMadness)
{
    setInterval(moveToNextDiv, 2000);
}

function moveToNextDiv(){
    var currentDiv = $('#holder > div.selected').removeClass("selected");
    var nextDiv = currentDiv.next().addClass("selected");
}

显然有些条件会阻止停止,只是会阻止这种情况,例如检查这确实是最后一个div。 您可以在此时循环回第一个或只是停止循环

答案 2 :(得分:1)

您的错误来自selectedP而不是selected

您还可以通过以下方式简化您的工作:

  function aaa() {    
        var currentDiv = $('#holder .selected');
        currentDiv.removeClass("selected");
        currentDiv.next().addClass("selected");    
  }