jQuery -添加类与相同的类每第二个项目,然后重置,如果中断
jQuery – add class to every second item with same class then reset if interrupted
我认为这可能已经问了一千次,但我不确定要搜索什么(我有一个很好的看,但找不到任何东西),所以这就是我想知道的…
我有一个简单的容器/元素设置如下:
<div class="chronology-container">
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-12 large each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
</div>
现在我要做的是向small
类项目的每一秒添加一个类。所以理想情况下,我的输出,例如,将是:
<div class="chronology-container">
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small shift each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small shift each-chronology"></div>
<div class="col-xs-12 large each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
</div>
我尝试了一些设置,最有希望的是:
$('.chronology-container .each-chronology:nth-of-type(2n)').addClass('shift');
但是这将类shift
添加到large
元素之后的元素中,这是错误的,因为它应该只将其添加到small
的第二项中,因此假设它们将分为两组。
任何想法吗?
Try
$('.chronology-container .each-chronology.small').not('.small + .small').each(function() {
$(this).nextUntil(':not(.small)').filter(':even').addClass('shift')
});
.small {
background-color: lightgrey;
}
.chronology-container > div {
margin-bottom: 5px;
min-height: 20px;
}
.chronology-container > .small.shift {
background-color: lightblue;
}
.chronology-container > .small.shift2 {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="chronology-container">
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-12 large each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-12 large each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
<div class="col-xs-6 small each-chronology"></div>
</div>
你可以试试下面的代码:-
$('.chronology-container .each-chronology.small:nth-child(2n+1)').addClass('shift');
更新:
$('.chronology-container .each-chronology.small:even:not(:first)').addClass('shift');
演示您的解决方案几乎是正确的,只是您使用了错误的类来标识元素。类each-chronology
对于大元素也很常见。不使用each-chronology
,使用small
作为类选择器。
尝试使用以下解决方案:
$('.chronology-container .small:nth-of-type(2n)').addClass('shift');
** OR **
$('.chronology-container .small.each-chronology:nth-child(2n)').addClass('shift');
相关文章:
- Handlebars访问第一个项目,然后访问后面的每个项目(在每个循环中)
- 从mysql数据库中删除项目,然后返回最后一页
- 滚动到列表中的特定项目,然后滚动到列表的下一个特定项目
- 从下拉列表中的数组中选取某个项目,然后将其显示为第一项并按字母顺序显示
- 如何从数组中删除随机项目,然后将其从数组中删除,直到数组为空
- 日期范围选择器,然后再次单击同一项目
- 用户取消选择,然后从数组中删除项目并进行排列,具体取决于它们的选择方式
- 咕噜咕噜一个角度项目,然后它错误为找不到模块
- 如何使用 javascript 在 MVC 项目中加载视图,然后在其中加载部分视图
- 如何存储拖动&将项目放入cookie,然后在另一个页面中检索
- 隐藏页面项目然后显示时出错
- 如果项目存在,则从对象中删除,然后再次推送
- 如何默认选择第一个项目,然后在AngularJs中突出显示所选项目
- 我如何允许点击每个项目/帖子,然后在一个新的屏幕上查看它
- GWT:是否有可能先使用GWT开始项目,然后最终迁移到完整的javascript ?
- 计算选定项目的成本,然后计算总成本
- Angular - ngAnimate - Animate.项目首先显示,然后动画开始
- jQuery -添加类与相同的类每第二个项目,然后重置,如果中断
- 如何使用"…"截断css中的列表然后加上+3"列表中有更多项目
- Jquery将项目从选择框移动到表,然后再返回.对我没用