2010-10-30 3 views

Répondre

3
$(document).ready(function() 
{ 
    $('td input[type="checkbox"]').click(function(){ 
     if ($(this).is(':checked')){ 
       $(this).parent().addClass('highlighted'); 
       $(this).parent().siblings().addClass('highlighted'); 
     } else if($(this).parent().is('.highlighted')) { 
      $(this).parent().removeClass('highlighted'); 
      $(this).parent().siblings().removeClass('highlighted'); 
     } 
    }); 
}); 

Il y a quelques différentes façons de ge t la rangée en surbrillance. Mais je viens d'ajouter une classe appelée en surbrillance qui avait une couleur d'arrière-plan et le définir à tous les tds

+0

Y a-t-il des possibilités de mettre en évidence une seule ligne à la fois? C'est-à-dire que l'utilisateur peut choisir une seule case à cocher. – svk

+0

Cela devrait seulement mettre en évidence les dt dans la rangée donnée. L'action est liée à tous les types d'entrée qui sont des cases à cocher dans un td. Si vous cliquez dessus (la case à cocher), le script détermine si la case a été cochée ou décochée. Si elle a été cochée, elle ajoute la classe mise en surbrillance au td parent et à tous les tds qui sont dans ce t, que voulez-vous exactement? –

0

Peut-être ceci:

$('table input[type=checkbox]').click(function(){ 
if($(this).is(':checked')) 
$(this).parents('tr :first').addClass('myStyleClass'); 
else 
$(this).parents('tr :first').removeClass('myStyleClass'); 
}); 
1

Je pense que vous voulez quelque chose comme ça

$('input[type=checkbox]').click(function(){ 
    var cb = $(this); 
    var tr = cb.closest('tr'); 
    cb.attr('checked') ? tr.addClass('highlight') : tr.removeClass('highlight'); 
}); 

css pour changer les couleurs de fond spécifiquement dans votre exemple

.highlight .tableeven { background-color: #f00; } 
.highlight .tableodd { background-color: #c00; } 
+0

Cela s'appliquera lorsque la couleur du texte est modifiée.Mais si je veux changer la couleur d'arrière-plan entier, il ne s'appliquera pas.Comment puis-je Appliquer tout le backgorund change.http: //jsfiddle.net/qWCs3/14/ – svk

+0

Tout est dans la façon dont vous structurez votre css, il semble que vous connaissiez assez bien css pour écrire une classe qui va changer la couleur d'arrière-plan d'une ligne. La raison pour laquelle la réponse que vous avez acceptée fonctionne parce qu'elle change aussi les noms de classe de tous les tds. Je supposais que vous saviez comment écrire des styles en cascade. J'ai ajouté un exemple à ma réponse. – JeremyWeir

Questions connexes