165 votes

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.

298voto

cletus Points 276888

Tu peux faire:

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

OU

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

OU

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

comme tu préfère.

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

42voto

Nikola Points 2491

Juste pour ajouter que la réponse qu'Alex fourni a fonctionné pour moi, et non pas celui qui est mis en évidence comme une réponse.

Ce n'est pas un travail pour moi

$('#countery.save') 

Mais celui-ci fait:

$('#countery .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 de toute façon, espérons que cette aide à toute personne ayant le même problème que j'ai eu.

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

L'espace est le sélecteur de descendant, c'est à dire Un B signifie "correspond à tous les éléments qui match B qui sont un descendant des éléments correspondant à Un". AB signifie "tout sélectionner élément qui correspondent A et B". Donc, cela dépend vraiment de ce que vous voulez atteindre. #countery.enregistrer et #countery .enregistrer ne sont pas équivalentes.

8voto

Alex Points 276

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

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

2voto

getack Points 90

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

Je pense donc que cette référence pourrait être d'une utilité précieuse.

1voto

Pekka 웃 Points 249607

Que diriez-vous de ce code?

 $("a.save#country")
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X