Comment ajouter classe au premier td dans chaque B l'intérieur d'une table en utilisant jQuery
-
09-09-2019 - |
Question
Je suis en train d'ajouter une classe au premier td dans une tr dans une classe spécifique. Mais pour une raison quelconque, il ajoute cette classe seulement au premier td dans le premier tr -non le premier td dans chaque B
$("#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 ci-dessus en supprimant le « ? » Td: eq (0) », ajoute cette classe à chaque td dans chaque tr ... donc 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>
La solution
Il me semble que vous utilisez une manière manuelle compliquée pour trouver le tds que vous souhaitez ajouter à la classe. Je crois qu'il serait plus facile d'utiliser des sélecteurs jQuery pour trouver votre 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");
trouverait tous les très et pour chaque tr trouver le premier td et ajouter la classe à cela.
Autres conseils
Modifier 'td:eq(0)
à 'td:first'
.
Cette méthode consiste à ajouter à la première leftbord
<td>
dans chaque rangée de la table gridFormInformation
:
$('#gridFormInformation tr td:first-child').addClass('leftbord');