web-dev-qa-db-fra.com

jQuery: sélectionnez la classe et l'identifiant d'un élément en même temps?

J'ai quelques liens que je veux sélectionner en même temps la classe et l'identifiant.

C'est parce que j'ai 2 comportements différents. Lorsqu'une classe de liens reçoit un nom de classe, elle se comporte d'une manière. Lorsque la même classe de liens obtient un autre nom de classe, elle se comporte différemment. Les noms de classe sont switch avec jquery.

Je dois donc pouvoir sélectionner une classe de liens ET un identifiant en même temps. Est-ce possible?

J'ai essayé:

 $("a .save #country")

sans résultat.

157
ajsie

Tu peux faire:

$("#country.save")...

OR

$("a#country.save")...

OR

$("a.save#country")...

comme tu préfère.

Alors oui, vous pouvez spécifier un sélecteur qui doit correspondre à l'ID et classe (et éventuellement au nom de la balise et à tout ce que vous souhaitez ajouter).

280
cletus

Juste pour ajouter que la réponse fournie par Alex a fonctionné pour moi, et non celle qui est mise en évidence comme une réponse.

Celui-ci n'a pas fonctionné pour moi

$('#country.save') 

Mais celui-ci a:

$('#country .save') 

donc ma conclusion est d'utiliser l'espace. Maintenant, je ne sais pas si c’est la nouvelle version de jQuery que j’utilise (1.5.1), mais j’espère quand même que cela aidera toutes les personnes ayant le même problème que moi.

edit: Le crédit complet pour l'explication (dans le commentaire à la réponse d'Alex) va à Felix Kling qui dit:

L’espace est le sélecteur de descendant, c’est-à-dire que A B signifie "correspond à tous les éléments qui correspondent à B qui sont des descendants des éléments correspondant à A". AB signifie "sélectionne tous les éléments qui correspondent à A et B". Donc, cela dépend vraiment de ce que vous voulez réaliser. #country.save et #country .save ne sont pas équivalents.

40
Nikola

Cela fonctionnera lors de l'ajout d'espace entre l'identifiant et l'identifiant de classe

$("#countery .save")...

8
Alex

En fin de compte, les mêmes règles que pour css s'appliquent.

Donc, je pense que cette référence pourrait être d'une utilité précieuse.

2
getack

Que diriez-vous de ce code?

$("a.save#country")
1
Pekka 웃
$("a.save, #country") 

sélectionnera à la fois la classe "a.save" et l'identifiant "pays".

1
o.k.w