2011-12-04 13 views
25

Voglio selezionare una colonna di tabella e tutto quello che so è il testo di intestazione della colonna. (Th.innerText)Come selezionare una colonna di tabella con jQuery

ho provato il seguente codice ma non funziona:

ownerIndex = $('th:contains("Owner")').index(); 
$('table tr td:nth-child(ownerIndex)') 

tutte le idee?

risposta

43

Ok. Ho trovato una soluzione:

$('table tr td:nth-child('+ownerIndex+')') 
+8

Questo funziona se ogni cella ha colspan = 1, ma si interrompe se le celle hanno colonne diverse. –

+0

Grazie, ho aggiunto la tua idea per impostare le larghezze delle colonne per lo stile "table-layout: fixed". In questo caso seleziono i bambini da colgroup es. $ ('# plGrid colgroup col: nth-child (0)'). css ('width', '150px'); $ ('# plGrid colgroup col: nth-child (1)'). css ('width', '250px'); –

+0

crea quel nth-child (1); nth-child (2) –

17

Nell'esempio precedente ownerIndex deve essere incrementato di 1 per abbinare l'indicizzazione dei nth-child, che comincia a 1 invece che 0.

Ecco il mio prendere: http://jsfiddle.net/2xU8t/

/* Set all the cells in columns with THEHEADING in the heading to red */ 

// Find the heading with the text THEHEADING 
columnTh = $("table th:contains('THEHEADING')"); 

// Get the index & increment by 1 to match nth-child indexing 
columnIndex = columnTh.index() + 1; 

// Set all the elements with that index in a tr red 
$('table tr td:nth-child(' + columnIndex + ')').css("color", "#F00"); 

// Set the heading red too! 
columnTh.css("color", "#F00"); 
Problemi correlati