Question

En gros, jQuery consiste à alterner les couleurs des lignes en sélectionnant toutes les balises tr associées au tableau à colorier, puis en les colorant en conséquence. Il y a des moments où je ne souhaite pas que certains tr soient colorés, cependant, et dans ces cas, la coloration alternée doit ignorer ces lignes de tableau. À cette fin, j'ai une classe appelée & "; RowSkip &"; que j’applique à toutes les lignes pour lesquelles la colorisation doit être ignorée.

Cela fait des mois que je travaille et ça marche un régal ... Cependant, il y a toujours eu un problème. Il existe des cas où je dois appliquer plusieurs classes à une ligne d'un tableau, mais que je ne souhaite pas non plus colorer. jQuery semble avoir un problème avec son sélecteur de classe dans ces circonstances - soit cela, soit il me manque quelque chose de simple ici ...

EG:

<tr class="rowSkip"> - > fonctionne bien.

<tr class="rowSkip strong someclass1 someclass2"> - > Ne fonctionne pas (reste coloré malgré la présence de la classe & "RowSkip &";)

Quelqu'un at-il une idée de la raison pour laquelle il pourrait en être ainsi et comment je pourrais le contourner si je ne saisis pas l’attr de la classe dans son intégralité, scindons l’espace, puis parcourons-le et vérifions la présence de rowSkip? <

Le code est ci-dessous:

$("Table.alternate tr:not(.rowSkip)").each(function() {
//if(!$(this).hasClass("rowSkip")) { //Also tried this, and several other renditions to no avail.

   $(this).addClass(i++ % 2 == 0 ? 'rowOff1' : 'rowOff2');
//}
});

Merci, Mark

Était-ce utile?

La solution

Essayez ceci:

$("Table.alternate tr:not('[class*=rowSkip]')").each

Eh bien, si votre classe va toujours commencer par rowSkip, vous pouvez le faire

$("Table.alternate tr:not('[class^=rowSkip]')").each //looks for class names that starts with rowSkip

Autres conseils

Je vous recommanderais de regarder le build du sélecteur jQuery juste pour ceci,: impair et: pair. Ensuite, vous avez deux façons:

$('table.alternating tr:odd td').css('background-color','#eee');

ou utilisez une classe:

$('table.alternating tr:odd').addClass('odd');

et des CSS:

tr.odd td { background-color: #eee }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top