Select first TD in every row w/ jQuery
How do I assign a style to every first cell of every row in a table?
$("#myTable tr td:first").addClass("black");
Solution 1:
Use the :first-child
pseudo class instead of :first
.
$("#myTable tr td:first-child").addClass("black");
The :first
pseudo class actually selects the first element that was returned in your list. For example, $('div span:first')
would return only the very first span under the first div that happened to be returned.
The :first-child
pseudo class selects the first element under a particular parent, but returns as many elements as there are first children. For example, $('table tr td:first-child')
returns the first cell of every single row.
When you used :first
, it was returning only the first cell of the first row that happened to be selected.
For more information, consult the jQuery documentation:
- http://api.jquery.com/first-selector/
- http://api.jquery.com/first-child-selector/
Solution 2:
you were pretty close, i think all you need is :first-child
instead of :first
, so something like this:
$("#myTable tr td:first-child").addClass("black");
Solution 3:
like this:
$("#myTable tr").each(function(){
$(this).find('td:eq(0)').addClass("black");
});