jQuery: select an element's class and id at the same time?

JqueryDomJquery SelectorsCss Selectors

Jquery Problem Overview


I've got some links that I want to select class and id at the same time.

This is because I've got 2 different behaviours. When a class of links got one class name they behave in one way, when the same clas of links got another class name they behave differently. The class names are switch with jquery.

So I have to be able to select a links class AND id at the same time. Is this possible?

I've tried:

 $("a .save #country")

without any result.

Jquery Solutions


Solution 1 - Jquery

You can do:

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

OR

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

OR

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

as you prefer.

So yes you can specify a selector that has to match ID and class (and potentially tag name and anything else you want to throw in).

Solution 2 - Jquery

Just to add that the answer that Alex provided worked for me, and not the one that is highlighted as an answer.

This one didn't work for me

$('#country.save') 

But this one did:

$('#country .save') 

so my conclusion is to use the space. Now I don't know if it's to the new version of jQuery that I'm using (1.5.1), but anyway hope this helps to anyone with similar problem that I've had.

edit: Full credit for explanation (in the comment to Alex's answer) goes to Felix Kling who says:

The space is the descendant selector, i.e. A B means "Match all elements that match B which are a descendant of elements matching A". AB means "select all element that match A and B". So it really depends on what you want to achieve. #country.save and #country .save are not equivalent.

Solution 3 - Jquery

It will work when adding space between id and class identifier

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

Solution 4 - Jquery

How about this code?

$("a.save#country")

Solution 5 - Jquery

$("a.save, #country") 

will select both "a.save" class and "country" id.

Solution 6 - Jquery

In the end the same rules as for css apply.

So I think this reference could be of some valuable use.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionajsieView Question on Stackoverflow
Solution 1 - JquerycletusView Answer on Stackoverflow
Solution 2 - JqueryNikolaView Answer on Stackoverflow
Solution 3 - JqueryAlexView Answer on Stackoverflow
Solution 4 - JqueryPekkaView Answer on Stackoverflow
Solution 5 - Jqueryo.k.wView Answer on Stackoverflow
Solution 6 - JquerygetackView Answer on Stackoverflow