Try this:

        jQuery('#Directorships tbody tr').each(function()
        {
                if (jQuery('td:nth-child(7)', $(this)).text().toLowerCase() == 
'retired')
                {
                        var td12th = jQuery('td:nth-child(12)', $(this));
                        
                        if (td12th.text() == '0')
                        {
                                td12th.addClass('bgHighlight');
                        }
                }
                
        });


I added tbody to the selector so it'll ignore the head or foot if you
have them. If you don't, just remove that.

You want to avoid using '#Directorships' in the selector with your
each() function because the context is already a specific row. So, we
add $(this) as the 2nd param of jQuery() to say that we're looking for
the 7th (or 12th) td of THIS row.

Also, the test for 0 uses the string '0' to avoid any equivalence
weirdness (since text() returns a string anyway).

I suggest that you set a class ('Retired' or 'Active') on your 7th
cell instead of relying on a comparison of the string content. That
would also make it much simpler to select rows for highlighting.


On Sun, Dec 6, 2009 at 5:55 PM, evanbu...@gmail.com <evanbu...@gmail.com> wrote:
> I'm using this code hightlight any table cell in the 12th column with
> a value of zero which works well.
>
> //SharesHeld
>        jQuery('#Directorships tr').each(function() {
>        jQuery('#Directorships td:nth-child(12)').filter(function() {
>        if (jQuery(this).text() == 0)
>                jQuery(this).addClass("bgHighlight");
>        });
> });
>
> I need to make this a bit more complex by hightlighting any table cell
> in the 12th column with a value of zero except those rows with a value
> of 'Retired' in the 7th column.  I tried this approach below but if
> any value in the 7th column has a value of 'Retired' then none of the
> cells in the 12th get highlighted.  I need to to evaluate it on a row-
> by-row basis rather than the entire column.  In other words, I just
> want to exclude anyone who is retired.
>
> //SharesHeld
>        jQuery('#Directorships tr').each(function() {
>        jQuery('#Directorships td:nth-child(12)').filter(function() {
>        if ((jQuery(this).text() == 0) && ('#Directorships td:nth-child
> (7)').not(':contains("Retired")'))
>                jQuery(this).addClass("bgHighlight");
>        });
> });
>
> In this example, the first 2 zeros in the 1st and 2nd rows should be
> highlighted but the third one should not be.
>
> Column7 Column12
> Active  0 (highlighted)
> Active  0 (highlighted)
> Retired 0 (not highlighted)
>
> Thanks
>

Reply via email to