所以我saw this question片刻之前我就开始思考了。
基本上,OP有这些方面的内容
<div>a</div>
<div>b</div>
<div>c</div>
<div>d</div>
$('div').each( function() {
//do something different based on whether even or odd div
if ($(this) == ':even') {} //invalid markup I know!
else {}
});
有没有办法告诉.each()
你当前的元素是奇数还是偶数?
jQuery有.filter
方法,但当它只有一个元素时它总是返回true。
我也意识到你可以使用nth-child选择器或以其他方式设置它,但我很好奇这个特定情况。
答案 0 :(得分:57)
对.each
的回调传递了元素的索引和元素:
$('div').each(function(i, el) {
// As a side note, this === el.
if (i % 2 === 0) { /* we are even */ }
else { /* we are odd */ }
});
答案 1 :(得分:9)
$('div').each( function(index) {
//do something different based on whether even or odd div
if (index % 2 == 0) {} // even
else {} // odd
});
答案 2 :(得分:6)
如果您知道所有元素都是同一父元素的子元素,则可以使用每个元素提供的索引
$('div').each( function(index) {
if (index%2 == 0) {}
else {}
});
否则,使用index函数来计算其兄弟姐妹中元素的索引。
$('div').each( function() {
if ($(this).index()%2 == 0) {}
else {}
});
答案 3 :(得分:3)
使用Jquery api .is( selector )
$('div').each( function() {
//Check if element is even
if ($(this).is(":even")) {
}
//Check if element is odd
if ($(this).is(":odd")) {
}
});