2010-09-15 2 views
1

Besoin d'aide pour écrire une expression régulière pour correspondre à une classe contenant l'expression block-containerAide avec une expression régulière pour un sélecteur jquery

Je suis venu avec ceci: '[class^=block-container]' mais j'ai besoin d'aide pour écrire les cartes sauvages autour de la phrase block-container.

Exemples i doivent correspondre:

nav-block-container-left 
block-container-whitebox 
right-block-container 

Répondre

1
$("[class*=block-container]") 
+0

Cela a fonctionné, est-ce que le * lui dit de trouver une chaîne contenant les mots block-container? Expliquer pourquoi^ne l'incluait que si block-container se trouvait au début de la chaîne. Si c'est correct, cela a beaucoup plus de sens maintenant. Merci – JMC

+0

Oui, le * = est le sélecteur "contient". Le^= est le sélecteur "commence par". Ils sont tous répertoriés ici: http://api.jquery.com/category/selectors/ –

+0

Oui. Voir http://api.jquery.com/category/selectors/. * = est "contient" alors que^= est "commence-avec". – Unoti

1

Vous êtes si proche! C'est ce que vous voulez, le sélecteur * =. http://api.jquery.com/category/selectors/

Comme ceci:

$('*[class*=block-container]').fadeOut(); 

Je l'ai testé sur une page qui a. Et puis a fait: $ ('[classe = opmen]'). FadeOut();

Et il a disparu le div de menu supérieur.

+0

+1 - Parce que je sais que vous travailliez dessus en même temps que Mark Ursino puisque vous avez inclus le '*' avant le premier '[' que j'ai édité juste après avoir posté. – JMC