我有四个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>
答案 0 :(得分:1)
您在此行中输入错误“ 此外,您可以直接访问所选的div:$(this).removeClass("selectedP");
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");
}