web-dev-qa-db-fra.com

Comment sélectionner une colonne de table avec jQuery

Je veux sélectionner une colonne de table et tout ce que je sais, c'est le texte d'en-tête de la colonne. (th.innerText)

J'ai essayé le code suivant mais cela ne fonctionne pas:

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

des idées?

27
user963395

D'accord. J'ai trouvé une solution:

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

Dans l'exemple ci-dessus, ownerIndex doit être incrémenté de 1 pour correspondre à l'indexation de nth-child, qui commence à 1 plutôt qu'à 0.

Voici ce que je pense: 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"); 
21
Tristan

Cela semble fonctionner avec la coche arrière par opposition à une citation simple: 

$(`table tr td:nth-child(${ownerIndex})`)
0
illibrarian