J'ai une table de données avec des couleurs d'arrière-plan en ligne alternées. J'ai un script AJAX pour supprimer une ligne. Je ne peux pas trouver un moyen de changer la classe de toutes les lignes en dessous de celle qui a été supprimée pour qu'elle alterne correctement à nouveau.jQuery modifier toutes les classes tr après une spécification
Par exemple, en considérant ce qui suit:
`<tr id="1" class="row1">
<td>blah</td>
</tr>
<tr id="2" class="row2">
<td>blah</td>
</tr>
<tr id="3" class="row1">
<td>blah</td>
</tr>
<tr id="4" class="row2">
<td>blah</td>
</tr>`
Maintenant, en utilisant mon script AJAX, je supprimer ID2, puis id3 se déplacera sous ID1 et ils auront la même couleur de la ligne. J'ai réussi à faire en sorte que mon script change la prochaine classe tr, mais cela n'aide pas vraiment parce que c'est juste la même couleur que celle qui suit. Je n'arrive pas à comprendre comment parcourir tous les tr suivant et changer leur classe en conséquence.
Ce que j'ai jusqu'à présent:
$('#news_' + id).fadeOut('slow');
var currtr = $('#news_' + id).attr('class');
var nexttr = $('#news_' + id).closest('tr').next('tr').attr('id');
$('#' + nexttr).removeClass($('#' + nexttr).attr('class'));
$('#' + nexttr).addClass(currtr);
$ ('# news_' + id) .fadeOut ('slow'); $ ('# news_table tr td: even'). AddClass ('row2'); Ne fait rien. – Scott
Désolé, j'ai ciblé le 'td' au lieu du' tr'; déjà édité. Essayez '$ ('# news_table tr: even'). AddClass ('row2');' (ou ':: impair ', selon la façon dont vous voulez que l'effet zèbre commence). – Alec