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

时间:2011-10-06 19:27:46

标签: jquery jquery-selectors

所以我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选择器或以其他方式设置它,但我很好奇这个特定情况。

4 个答案:

答案 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")) {
    }

});