我正在尝试从代码服务器端动态创建“书”。该部分工作正常,并生成类似于以下内容的输出:
<div id="pagesContainer">
<div class="pageContent">
<div>
Page 1 content
</div>
</div>
<div class="pageContent">
<div>
Page 2 content
</div>
</div>
<div class="pageContent">
<div>
Page 3 content
</div>
</div>
<div class="pageContent">
<div>
Page 4 content
</div>
</div>
<div class="pageContent">
<div>
Page 5 content
</div>
</div>
</div>
我需要做的是,最好使用jQuery将类添加到最内层的div,例如page-left
或page-right
。例如,第1页,第3页和第5页将获得page-left
,而第2页和第4页将获得page-right
。可能还有更多(或更少)5页。我尝试过使用一堆不同的偶数/奇数选择器方案,但似乎无法让它正常工作。
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:10)
使用:odd和:even选择器。
例如:
$('.pageContent:odd').addClass("page-left")
$('.pageContent:even').addClass("page-right")
答案 1 :(得分:7)
这应该有用。
$('#pagesContainer').children('.pageContent').each(function(index)
{
$(this).addClass(index % 2 ? 'page-right' : 'page-left');
});
jsFiddle的演示。
答案 2 :(得分:3)
尝试:odd
和:even
选择器:
$('.pageContent:odd').addClass('odd');
您还可以使用:nth-child
来充分利用性能提升,因为它是内置选择器:
$('.pageContent:nth-child(odd)').addClass('odd');
答案 3 :(得分:1)
$('.pageContent').each(function(i,t){
var addClass = i % 2 == 0 ? 'odd' : 'even';
$(t).addClass(addClass);
})
答案 4 :(得分:1)
尝试使用此处所述的nth-child(even)
:http://www.w3.org/Style/Examples/007/evenodd.en.html
.pageContent:nth-child(even) { /* Something amazing */ }
答案 5 :(得分:0)
使用':odd and
:even`选择器
http://api.jquery.com/category/selectors/
$('.pageContent:odd').addClass('oddClass')
答案 6 :(得分:0)
$(".pageContent:odd").addClass("oddPage");
$(".pageContent:even").addClass("evenPage");
答案 7 :(得分:0)
这是你想要达到的目标吗? http://jsfiddle.net/Sf7AD/3/
$('#pagesContainer > div:even').addClass('page-left');
$('#pagesContainer > div:odd').addClass('page-right');
不是因为元素是0索引的,:even
将反直觉地选择第一,第三,第五等元素
来自文档 http://api.jquery.com/even-selector/
特别要注意,基于0的索引意味着, 反直觉地:甚至选择第一个元素,第三个元素, 在匹配的集合中等等。