Comment ajouter classe au premier td dans chaque B l'intérieur d'une table en utilisant jQuery

StackOverflow https://stackoverflow.com/questions/945060

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>
Était-ce utile?

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');
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top