JQuery: Si un en-tête de tableau <th> dispose d'une classe, d'ajouter une classe à la cellule de la table <td>

Disons que j'ai le code html suivant:

<table>
    <thead>
        <tr>
            <th class="alignRight">Header1</th>
            <th>Header2</th>
            <th class="alignLeft">Header3</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Row1</td> //Add class="alignRight"
            <td>Row1</td>
            <td>Row1</td> //Add class="alignLeft"
        </tr>
        <tr>
            <td>Row2</td> //Add class="alignRight"
            <td>Row2</td>
            <td>Row2</td> //Add class="alignLeft"
        </tr>
        <tr>
            <td>Row3</td> //Add class="alignRight"
            <td>Row3</td>
            <td>Row3</td> //Add class="alignLeft"
        </tr>
    </tbody>
</table>

Si un TR dans le THEAD contient la classe "alignRight" ou "alignLeft" je voudrais appliquer la même classe correspondant de la TD dans le TBODY.

J'utilise JQuery et ont essayé de la suite, mais aucun d'entre eux semblent fonctionner correctement:

$('tr').has('th.alignRight').addClass('th.alignRight');
$('tr').has('th.alignLeft').addClass('th.alignLeft');

$('thead.tr').has('th.alignRight').addClass('tbody.th.alignRight');
$('thead.tr').has('th.alignLeft').addClass('tbody.th.alignLeft');

if ($('thead.tr').has('th.alignRight')){
    $('tbody.tr').addClass('th.alignRight');
}

if ($('thead.tr').has('th.alignRight')){
    $('tbody.tr.td').addClass('alignRight');
}

Toutes les idées sur ce qui pourrait être mauvais?

Mise à JOUR:

Je voudrais ajouter que j'ai déjà parcourir le tableau à l'aide d'un .chacun() en boucle. J'ai seulement besoin d'ajouter la condition que, si la table d'en-tête a cette catégorie, ajouter la même classe de la cellule du tableau. L'ajout d'un supplément de l'itération au cours de l'itération actuelle semble que cela conduirait à des problèmes de performances. Est-ce vrai?

BOUCLE:

function(res) {
    var tbl_body = "";
    $.each(res, function () {
        var tbl_row = "";
        $.each(this, function (k, v) {

          //Irrelevant code

            tbl_row += "<td>" + v + "</td>";
        })
        tbl_body += "<tr>" + tbl_row + "</tr>";
    })
    $("#print").html(tbl_body);
    },
    //Other irrelevant code
Merci de poster votre boucle. Mais dans tous les cas, vous aurez à boucle sur votre tds.
Qu'est-ce que res ?
res = résultat. Il n'est pas utilisé dans ce cas.
Je ne comprends pas votre boucle, et donc comment le modifier pour mettre les classes. Viens de faire une autre boucle, plus tard, comme nous l'avons écrit : vous n'aurez pas de problèmes de performances, sauf si votre table a des milliers de lignes.

OriginalL'auteur Keven | 2013-11-13