jquery selecting all elements except the last per group
I have a table that looks like:
<table>
<tr>
<td>one</td><td>two</td><td>three</td><td>last</td>
</tr>
<tr>
<td>blue</td><td>red</td><td>green</td><td>last</td>
</tr>
<tr>
<td>Monday</td><td>Tuesday</td><td>Wednesday</td><td>last</td>
</tr>
</table>
What I want is a jquery selector that will choose all but the last td
of each table row. I tried:开发者_StackOverflow
$("tr td:not(:last)").css("background-color","red");
//changing color just as a test...
But instead of all cells but the last on each row being changed, all cells but the very last one in the table are selected. Similarly, if I change it to:
$("tr td:last").css("background-color","red");
the only one that changes is the very last cell. How do I choose the last (or not last) of each row?
Use this:
$('tr td:not(:last-child)').css('background-color', 'red');
It's saying each <td>
that's not the last in that particular <tr>
$('tr').find('td:not(:last)').css('background-color', 'red');
Translates to: for each element in $('tr')
selector, do a find()
for all td
s that are not last.
New result is about td
s now, so you can apply .css()
as wanted.
精彩评论