/ / Comment ajouterClass au premier td de chaque tr à l'intérieur d'une table en utilisant jQuery - jquery, html, jquery-selectors, html-table

Comment ajouterClass au premier td de chaque tr à l'intérieur d'une table en utilisant jQuery - jquery, html, jquery-selectors, html-table

J'essaie d'ajouter une classe au premier td à l'intérieur d'un tr au sein d'une classe spécifique. Mais pour une raison quelconque, il n'ajoute cette classe qu'au premier td du premier tr -pas le premier td de chaque tr

$("#appendTD").find("#gridFormInformation").children(0).children().each(
function() {
if ($("#appendTD").find("tr").filter(function() { return $(this).attr("class") == "ui-widget-content ui-subtblcell"; }).children("td:eq(0)").addClass("leftbord"));
}
);

Mais quand je modifie ce qui précède en supprimant le "" td: eq (0) "cela ajoute cette classe à chaque td dans chaque tr ... alors qu'est-ce que je fais mal?

Exemple de balisage ci-dessous

<td id="appendTD">
<table id="gridFormInformation">
<tbody>
<tr><th>1</th><th>2</th><th>3</th></tr>
<tr class="ui-widget-content ui-subtblcell"><td>1</td><td>2</td><td>3</td></tr>
<tr class="ui-widget-content ui-subtblcell"><td>1</td><td>2</td><td>3</td></tr>
<tr class="ui-widget-content ui-subtblcell"><td>1</td><td>2</td><td>3</td></tr>
</tbody>
</table>
</td>

Réponses:

5 pour la réponse № 1

Il me semble que vous utilisez une méthode manuelle compliquée pour trouver les tds auxquels vous souhaitez ajouter la classe. Je pense qu'il serait plus facile d'utiliser les sélecteurs jQuery pour trouver vos tds.

Remplacer

$("#appendTD").find("#gridFormInformation").children(0).children().each(
function() {
if ($("#appendTD").find("tr").filter(function() { return $(this).attr("class") == "ui-widget-content ui-subtblcell"; }).children("td:eq(0)").addClass("leftbord"));
}
);

avec

$("#gridFormInformation tr.ui-widget-content.ui-subtblcell").find("td:first").addClass("leftbord");

Cela trouverait tous les très et pour chaque tr trouver le premier td et ajouter la classe à cela.


2 pour la réponse № 2

Changement "td:eq(0) à "td:first".


2 pour la réponse № 3

Cette méthode consiste à ajouter leftbord au premier <td> dans chaque ligne du tableau gridFormInformation:

$("#gridFormInformation tr td:first-child").addClass("leftbord");