Friday, January 1, 2010

Re: [jQuery] Re: jQuery does not stripe visible table rows correctly

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 <sime.vidas@gmail.com>
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');
               }
       });

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate