2010-07-21 7 views
3

J'ai une table qui contient plusieurs cases à cocher dans chaque ligne. J'ai besoin de connaître la valeur de chaque case à cocher. Je suis en mesure de faire quelque chose comme ce qui suit pour récupérer la valeur d'une case à cocher dans la première colonne d'une table ...Comment obtenir la valeur de case à cocher d'une cellule spécifique dans une ligne de table en utilisant jQuery?

$('#myTable tbody tr td:first-child input:checkbox').each(function() { 
     if (this.checked) { 
      //Do something 
     } 
    }); 

Mais maintenant, je dois itérer sur chaque ligne, et obtenir la valeur de chaque case à cocher individuelle. C'est ce que j'ai essayé pour une case à cocher spécifique ...

if($(this).find(':input[type="checkbox"]').eq(0).attr('checked')) { 
      myVariable = 'so and so'; 
     } 
     else { 
      myVariable = 'something else'; 
     } 

Ce qui ne fonctionne pas. Des suggestions sur la façon dont je peux obtenir ce travail?

Répondre

1

Votre question n'est pas si claire cependant en partant de votre deuxième exemple je suppose que le 'ceci' est le tr. Le ci-dessous montre comment obtenir la première case dans la ligne et tester si elle est cochée

if ($(this).find('input:checkbox:first').is(':checked')) {...} 

Pour itérer toutes les cases de la ligne

$(this).find('input:checkbox').each(function(){...} 

Pour itérer toutes les cases cochées dans la rangée

$(this).find('input:checkbox:checked').each(function(){...} 
0

Pourquoi ne pas supprimer td:first-child de votre sélecteur?

$('#myTable tbody tr input:checkbox').each(function() { 
    if (this.checked) { 
     //Do something 
    } 
}); 

Ou si vous voulez regrouper les cases à cocher par ligne en quelque sorte:

$('#myTable tbody tr').each(function() { 
    $(this).find('input:checkbox:checked').each(function() { 
     //.. 
    }); 
}); 
Questions connexes