J'ai besoin d'ajouter des classes aux éléments li dans une ul #colorlist à des endroits spécifiques. Ainsi, chaque 15ème élément de li devient une classe, chaque 16ème devient un autre (le 15ème a besoin d'un retournement pour se retourner et le 16ème est le premier d'une rangée). Ceci est assez facile avec ceci:Traverser des éléments li cachés
$('#colorlist li:nth-child(15n+1)').addClass('first-column');
Toutefois, j'ai alors différents filtres qui masquent les articles li et le problème vient alors que dans ceux qui sont cachés sont encore comptés. Je pense que quelque chose comme ça pourrait être la bonne approche, mais beaucoup de choses dont je ne suis pas sûr. L'idée ici serait de tester si le nombre total divisé par 15 est égal à un nombre entier. Si c'est le cas, j'appliquerais ma classe.
$("#colorlist li").each(function(){
if($("#colorlist li:visible").size() % 15 == ???)$(this).addClass('first-column');
});
Vous ne savez pas comment tester un nombre entier ou comment l'utiliser pour chaque 15e élément. Comme vous pouvez le voir, je suis en quelque sorte perdu! Toute aide très appréciée.
Comment cacher vos éléments 'li'? Si vous utilisez 'display: none', ils ne seront pas comptés. –
J'utilise les commandes jquery show et hide. Selon le firebug "hide" leur donne un affichage: none mais le nth-child les compte encore. – hmon