Friday, October 30, 2009

[jQuery] Select the inverse of what you're looking for

I have a table with 2 columns and four rows. I am currently able to
highlight the row which contains a specific piece of text. But what I
want to do is to highlight the rows that DO NOT have that piece of
text. Here's the code:


This line highlights the row that contains a cell with the text
"Brown":
var found = $("tr:has(td:contains('Brown'))").css("background-color",
"Red");

However, I do not want to highlight the row with the text but all the
others..so I tried this:
var found = $("tr:has(td:contains('Brown'))");
$("tr:not(found)").css("background-color", "Red").css("background-
color", "Red");
I thought the :not filter was supposed to invert the selection however
this does not work..all rows get highlighted.

Were am I wrong?? And how can I do this? Here's the HTML just in
case you want to try it.


<table cellspacing="0" cellpadding="0">
<tr>
<th>English</th>
<th>Italian</th>
</tr>
<tr>
<td>White</td>
<td>Bianco</td>
</tr>
<tr>
<td>Yellow</td>
<td>Giallo</td>
</tr>
<tr>
<td>Brown</td>
<td>Marrone</td>
</tr>
<tr>
<td>Black</td>
<td>Nero</td>
</tr>
</table>

Thanks

No comments: