jQuery: выбрать класс элемента и идентификатор одновременно? - PullRequest
152 голосов
/ 22 декабря 2009

У меня есть несколько ссылок, по которым я хочу выбрать класс и идентификатор одновременно.

Это потому, что у меня 2 разных поведения. Когда класс ссылок получает одно имя класса, они ведут себя одинаково, когда одни и те же классы ссылок получают другое имя класса, они ведут себя по-разному. Имена классов переключаются с помощью jquery.

Так что я должен иметь возможность выбрать класс ссылок и идентификатор одновременно. Возможно ли это?

Я пробовал:

 $("a .save #country")

безрезультатно.

Ответы [ 6 ]

272 голосов
/ 22 декабря 2009

Вы можете сделать:

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

OR

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

ИЛИ

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

, как вы предпочитаете.

Так что да, вы можете указать селектор, который должен соответствовать идентификатору и классу (и, возможно, имени тега и тому, что вы хотите добавить).

39 голосов
/ 13 апреля 2011

Просто добавлю, что ответ, который дал Алекс, сработал для меня, а не тот, который выделен в качестве ответа.

Этот не работал для меня

$('#country.save') 

Но этот сделал:

$('#country .save') 

так что мой вывод - использовать пространство. Теперь я не знаю, использую ли я новую версию jQuery (1.5.1), но в любом случае надеюсь, что это поможет всем, у кого была похожая проблема.

edit: Полная оценка за объяснение (в комментарии к ответу Алекса) принадлежит Феликсу Клингу, который говорит:

Пробел является селектором-потомком, то есть A B означает «Сопоставить все элементы, которые соответствует B, которые являются потомками элементов, соответствующих A ". AB означает" выбрать все элемент, который соответствует A и B ". Таким образом, это действительно зависит от того, чего вы хотите достичь. #country.save и #country .save не эквивалентны.

7 голосов
/ 16 марта 2011

Будет работать при добавлении пробела между идентификатором и идентификатором класса

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

2 голосов
/ 19 октября 2012

В конце концов применяются те же правила, что и для CSS.

Так что я думаю эта ссылка может быть полезна.

1 голос
/ 22 декабря 2009
$("a.save, #country") 

выберет и класс "a.save", и идентификатор "страны".

1 голос
/ 22 декабря 2009

Как насчет этого кода?

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