2009-06-03 6 views
3

J'essaie d'ajouter une classe au premier td dans un 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 trComment ajouter une classe au premier td dans chaque tr dans une table en utilisant jQuery

$("#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) » il ajoute cette classe à chaque td dans chaque tr ... alors qu'est-ce que je fais mal?

Exemple de marquage 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épondre

5

il lo OK pour moi comme si vous utilisiez un moyen manuel compliqué pour trouver le tds auquel vous voulez ajouter la classe. Je crois 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"); 

Ce trouverait tous les très et pour chaque tr trouver la première td et ajoutez la classe à cela.

+0

Juste ce que je cherchais aussi! Merci :-) –

2

changement 'td:eq(0)-'td:first'.

2

Cette méthode consiste à ajouter à la première leftbord<td> dans chaque ligne de la table gridFormInformation:

$('#gridFormInformation tr td:first-child').addClass('leftbord'); 
Questions connexes