2010-08-24 5 views
3

J'utilise un paquet de commerce électronique et il y a des sections que mon client veut désactiver pour les cacher. Le problème est que le paquet a toutes ses étiquettes sous la même classe et je ne sais pas comment je peux cibler certains afin de les cacher ou les désactiver.Désactiver une classe en utilisant Javascript?

J'en ai 5 et j'aimerais cacher le 3ème, disons. Ils sont dans une table pour ainsi il ressemble à ceci:

<td><span class="lable">Description</span></td> 

des suggestions?

Répondre

2
$('.label').eq(2).hide() 

Préférez les méthodes de sélection de la liste, telles que eq() pour t Les sélecteurs non standard comme :eq. L'utilisation des sélecteurs jQuery permet au navigateur de revenir à la bibliothèque de sélecteurs Sizzle relativement lente au lieu du support natif rapide intégré aux navigateurs modernes.

+0

+1 Très élégant. Et des informations très intéressantes sur ce qui se passe sous le capot. Pourriez-vous indiquer où se trouve cette connaissance interne? –

+0

ligne 3530 dans la source jquery 1.4.2, plus la spécification [CSS3 Selectors] (http://www.w3.org/TR/css3-selectors/). Malheureusement, les documents jQuery n'énoncent pas les implications pour les performances, mais l'OMI utilisant des sélecteurs non-CSS est discutable en soi. Si une version ultérieure de CSS arrive et définit l'un des sélecteurs Sizzle/jQuery avec une signification légèrement différente, nous sommes tous en difficulté. – bobince

+0

Génial. Merci beaucoup. Cela a fonctionné très bien! – Xtian

3

Puisque vous avez balisé cela comme jQuery, le eq, sélecteurs gt et lt peut être vous intéresser:

$("tr > td > span[class=lable]:eq(2)").hide(); 

Démo: http://jsfiddle.net/6MvnB/

et: http://jsfiddle.net/LD6nU/ (avec la permission de @Majid)

+0

+1 Très bon sélecteur, mais j'ai légèrement modifié votre code pour: '$ (" tr> td> span [classe = lable]: eq (2) "). Hide();' Il cache juste le 3ème pas tous plus grand que le 3ème comme le fait votre sélectionneur. Mais c'est sûrement votre réponse. Lien: http://jsfiddle.net/LD6nU/ –

+0

@Majid - Merci. Quelque part je me suis mis dans la tête qu'il voulait que tout soit caché (je pense que j'ai dû avoir cette impression à partir d'un exemple de balisage qui ressemble à une rangée d'en-tête). – karim79

Questions connexes