这是一个偶数还是奇数元素?

mrt*_*man 22 jquery jquery-selectors

所以我刚才在SO上看到了这个问题,它让我思考.

基本上,OP有这些方面的东西

<div>a</div>
<div>b</div>
<div>c</div>
<div>d</div>
Run Code Online (Sandbox Code Playgroud)
$('div').each( function() {
   //do something different based on whether even or odd div
   if ($(this) == ':even') {}  //invalid markup I know!
   else {}
});
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉.each()你当前元素是奇数还是偶数?

.filterjQuery 的方法,但是当它有一个单独的元素时它总是返回true.

我也意识到你可以使用nth-child选择器或以其他方式设置它,但我很好奇这个特定情况.

Sea*_*ira 57

回调.each函数传递给元素的索引和元素:

$('div').each(function(i, el) {
   // As a side note, this === el.
   if (i % 2 === 0) { /* we are even */ }
   else { /* we are odd */ }
});
Run Code Online (Sandbox Code Playgroud)


She*_*hef 9

$('div').each( function(index) {
   //do something different based on whether even or odd div
   if (index % 2 == 0) {}  // even
   else {} // odd
});
Run Code Online (Sandbox Code Playgroud)


Den*_*nis 6

如果您知道所有元素都是同一父元素的子元素,则可以使用每个元素提供的索引

$('div').each( function(index) {
    if (index%2 == 0) {}
    else {}
});
Run Code Online (Sandbox Code Playgroud)

否则,使用index函数来计算其兄弟姐妹中元素的索引.

$('div').each( function() {
    if ($(this).index()%2 == 0) {}
    else {}
});
Run Code Online (Sandbox Code Playgroud)