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");
});