通过div循环?
我有这样的HTML:通过div循环?
<div id="container">
<div class="boxes">first box</div>
<div class="boxes">second box</div>
<div class="boxes">third box</div>
</div>
<a href="jquery">Show me next box</a>
考虑到最初只有第一个框是可见的。当我点击'显示下一个框'时,我想隐藏当前可见框,并且列表中的下一个.boxes
将出现。我认为,我认为它唯一接近的是.each
函数,但我不应该遍历所有的div
,只是为了展示一个函数。
$('a').click(function() {
var visibleBox = $('#container .boxes:visible');
visibleBox.hide();
var nextToShow = $(visibleBox).next('.boxes:hidden');
if (nextToShow.length > 0) {
nextToShow.show();
} else {
$('#container .boxes:hidden:first').show();
}
return false;
});
@Darin:非常好。但它实际上并不循环。 – 2011-05-14 16:22:00
':visible'适用于'display:none'? OPS看到你的现场演示答案是有效的 – dynamic 2011-05-14 16:22:14
@ yes123,如果一个元素应用'display:none'风格,那么':visible'将不会选择它。 – 2011-05-14 16:23:31
$('a').click(function(){
$('.boxes').filter(':visible').hide().next().add('.boxes:first').last().show();
});
我喜欢你拴住东西的方式。另外,它不应该是'.first'而不是'.last'吗? – 2011-05-14 16:58:42
你会这样想的,不是吗?不,它应该是'.last',因为出于某种原因,这些元素总是以_first-in-document_的顺序出现。 – 2011-05-14 17:04:13
哈哈,你是对的。我记得在最近版本的发行说明中阅读:) – 2011-05-14 17:15:32
看看bazillion相关的问题。 – 2011-05-14 16:16:50
@tomalak我搜索之前问这个,但我没有找到任何相关的 – dynamic 2011-05-14 16:17:59