JQuery: how to select values ​​from a table column based only on table headers

I have a table with a header id. I need to select all the fields in this header. I do not have access to the source code, and classes are not used in this table. Any idea on how to do this?

+4
source share
3 answers

To get the first column:

$(function() { var col = $("td:nth-child(1)"); }); 
+6
source

The easiest way would be to get the position (index) of the header in the row and then access all cells with the same column index.

 $('#table th').click(function() { var th = $(this); var index = $('th', th.parents('tr')).index(th); var column = $('tbody td:nth-child(' + (index + 1) + ')', th.parents('table')); var values = column.map(function() { return $(this).text(); }); alert($.makeArray(values)); }); 

Based on this example:

 <table id="table"> <thead> <tr><th>head1</th><th>head2</th><th>head3</th></tr> </thead> <tbody> <tr><td>cell1a</td><td>cell2a</td><td>cell3a</td></tr> <tr><td>cell1b</td><td>cell2b</td><td>cell3b</td></tr> <tr><td>cell1c</td><td>cell2c</td><td>cell3c</td></tr> </tbody> </table> 
+2
source

You should use a filter: eq (index).

After determining the index of the column that you want to select (call it idx ), you can do:

 $('#yourTableID tr').each(function(){ // for each row: var myField = $(this).children('td:eq('+idx+')'); // do stuff with the selected field }); 
+1
source

All Articles