jQuery :odd 或 :even 将 addClass 添加到某个选择器?
jQuery :odd or :even to addClass up to a certain selector?
我需要向选择器添加一个 alt class(奇数或偶数),然后在到达另一个选择器后重新开始。
我有什么
<div class="person"></div>
<div class="person"></div>
<div class="person"></div>
<div class="person"></div>
<div class="person"></div>
<div class="section-separator"></div>
<div class="person"></div>
<div class="person"></div>
我需要的
<div class="person"></div>
<div class="person alt"></div>
<div class="person"></div>
<div class="person alt"></div>
<div class="person"></div>
<div class="section-separator"></div>
<div class="person"></div>
<div class="person alt"></div>
我 运行 遇到的问题是它想从上一节继续计数 odd/even 而不是重新开始,所以我的样式没有正确应用。我目前的 jQuery 是 $('.personbox:odd').addClass('alt');
我认为没有聪明的方法可以做到这一点。不聪明的方法只是 select .person
和 .section-separator
元素并循环遍历,跟踪索引:
var index = 0;
$(".person, .section-separator").each(function() {
var $this = $(this);
if ($this.hasClass("section-separator")) {
index = 0;
} else {
if (index % 2 == 1) {
$this.addClass("alt");
}
++index;
}
});
.alt {
color: blue;
}
<div class="person">testing</div>
<div class="person">testing</div>
<div class="person">testing</div>
<div class="person">testing</div>
<div class="person">testing</div>
<div class="section-separator">separator</div>
<div class="person">testing</div>
<div class="person">testing</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
我需要向选择器添加一个 alt class(奇数或偶数),然后在到达另一个选择器后重新开始。
我有什么
<div class="person"></div>
<div class="person"></div>
<div class="person"></div>
<div class="person"></div>
<div class="person"></div>
<div class="section-separator"></div>
<div class="person"></div>
<div class="person"></div>
我需要的
<div class="person"></div>
<div class="person alt"></div>
<div class="person"></div>
<div class="person alt"></div>
<div class="person"></div>
<div class="section-separator"></div>
<div class="person"></div>
<div class="person alt"></div>
我 运行 遇到的问题是它想从上一节继续计数 odd/even 而不是重新开始,所以我的样式没有正确应用。我目前的 jQuery 是 $('.personbox:odd').addClass('alt');
我认为没有聪明的方法可以做到这一点。不聪明的方法只是 select .person
和 .section-separator
元素并循环遍历,跟踪索引:
var index = 0;
$(".person, .section-separator").each(function() {
var $this = $(this);
if ($this.hasClass("section-separator")) {
index = 0;
} else {
if (index % 2 == 1) {
$this.addClass("alt");
}
++index;
}
});
.alt {
color: blue;
}
<div class="person">testing</div>
<div class="person">testing</div>
<div class="person">testing</div>
<div class="person">testing</div>
<div class="person">testing</div>
<div class="section-separator">separator</div>
<div class="person">testing</div>
<div class="person">testing</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>