85 votes

Comment puis-je obtenir l'en-tête de table correspondant (th) à partir d'une cellule de table (td)?

Étant donné le tableau suivant, comment puis-je obtenir l'en-tête de tableau correspondant pour chaque élément td?

 <table>
    <thead> 
        <tr>
            <th id="name">Name</th>
            <th id="address">Address</th>
        </tr>
    </thead> 
    <tbody>
        <tr>
            <td>Bob</td>
            <td>1 High Street</td>
        </tr>
    </tbody>
</table>
 

Étant donné que l'un des éléments td déjà disponible, comment puis-je trouver l'élément th ?

 var $td = IveGotThisCovered();
var $th = GetTableHeader($td);
 

141voto

user113716 Points 143363
 var $th = $td.closest('tbody').prev('thead').find('> tr > th:eq(' + $td.index() + ')');
 

Ou un peu simplifié

 var $th = $td.closest('table').find('th').eq($td.index());
 

10voto

Adam Points 14766
 var $th = $("table thead tr th").eq($td.index())
 

Il serait préférable d'utiliser un identifiant pour référencer la table s'il y en a plusieurs.

5voto

rebelliard Points 5821

Vous pouvez le faire en utilisant l'index du td:

 var tdIndex = $td.index() + 1;
var $th = $('#table tr').find('th:nth-child(' + tdIndex + ')');
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X