Amen Ra
Amen Ra

Reputation: 2851

How do loop through a table to select a specific table cell on each row using jquery?

I am trying to place text in the 6th table cell of each row of my table. But all I am getting is the first row selected:

$('tbody tr:even td:eq(5)').each(function(){
                $(this).text('$145');
            });

What adjustment do I need to make?

Upvotes: 0

Views: 1598

Answers (2)

Jose Faeti
Jose Faeti

Reputation: 12302

$( 'table tr' ).each( function() {

  $(this).find( 'td' ).eq(5).text('$145');

});

UPDATE

Since the accepted anwser does the same thing but using the :eq() selector instead of the .eq() method, it's worth reading the additional notes on the jQuery DOCs for the eq selector:

Because :eq() is a jQuery extension and not part of the CSS specification, queries using :eq() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").eq(index) instead.

So I think it's advisable to use the .eq() method instead of the :eq() selector.

Upvotes: 3

David Thomas
David Thomas

Reputation: 253308

I think that the following should work:

$('tbody tr').each(
function(){
    $(this).find('td:eq(5)').text('$145');
});

JS Fiddle demo.

Reference:

Upvotes: 4

Related Questions