Thanks for your reply. Your solution works. I had a feeling that :even and
:odd filters are zero-based, but found that to be "odd" in this situation.
So now that I have 2 ways to stripe visible table rows using jQuery, which
solution do you prefer?
$('#foobar tbody tr:visible:even').addClass('rowodd');
$('#foobar tbody tr:visible:odd').addClass('roweven');
or
$('#foobar tbody tr:visible').each(function(i) {
if ((i+1) % 2 === 0) {
$(this).addClass('roweven');
}
else {
$(this).addClass('rowodd');
}
});
I guess both solutions work so it really doesn't matter, but which method
would you choose? The first solution contains less code but the second
solution seems more intuitive.
2010/1/1 Šime Vidas <[email protected]>
> Also, you really don't need two counters (i and j)....
>
> var rows = $('#foobar tbody tr:visible');
> for (var i = 0; i < rows.length; i++){
> if ((i + 1) % 2 == 0) {
> rows.eq(i).addClass('roweven');
> }
> else {
> rows.eq(i).addClass('rowodd');
> }
> }
>
> However, don't use the for loop, you have jQuery's each method...
>
> $('#foobar tbody tr:visible').each(function(i) {
> if ((i+1) % 2 === 0) {
> $(this).addClass('roweven');
> }
> else {
> $(this).addClass('rowodd');
> }
> });
>