2009-12-22 5 views
129

클래스와 ID를 동시에 선택하려는 링크가 있습니다.jQuery : 요소의 클래스와 ID를 동시에 선택 하시겠습니까?

두 가지 다른 행동이 있기 때문입니다. 링크 클래스가 하나의 클래스 이름을 가졌을 때 그들은 한 방향으로 행동합니다. 링크의 동일한 클래스가 다른 클래스 이름을 가졌을 때 그들은 다르게 행동합니다. 클래스 이름은 jquery로 전환됩니다.

그래서 링크 클래스와 ID를 동시에 선택할 수 있어야합니다. 이것이 가능한가?

이 나는 ​​시도했다 :

$("a .save #country") 

어떤 결과없이.

답변

235

당신은 할 수 있습니다 :

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

또는

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

또는

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

원하는대로

.

그렇습니다. ID 클래스 (그리고 잠재적으로 태그 이름과 던져 넣을 다른 태그)와 일치해야하는 선택기를 지정할 수 있습니다. 그냥 추가

+23

기본적으로 다음과 같습니다. $ ("# a .b")는 id가 a 인 요소 내부에 클래스 b가있는 요소를 의미합니다. $ ("# a.b")는 클래스 b와 id가있는 요소를 의미합니다. 속임수는 #a와 .b 사이의 공간입니다 –

+8

클래스 앞에 ID 선택기를 사용하면주의해야합니다. 그렇지 않으면 클래스가 작동하지 않습니다. 예 : $ (". save # country") ... 결과를 반환하지 않습니다. – slotomo

0

이 코드는 어떻습니까?

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

서둘러 내가이 답변에 잘못 투표했습니다. 죄송합니다 ... – devundef

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

는 "a.save"클래스와 "국가"ID를 모두 선택합니다.

7

그것은 작동 할 수 알렉스 답변으로 강조하는 하나를 나를 위해 일한 아닌 것으로 대답.

이 사람은 나를

$('#country.save') 

작동하지 않았다하지만이 사람은 한 :

$('#country .save') 

나의 결론은 공간을 사용하는 것입니다. 지금은 (1.5.1) jQuery의 새 버전에 대한 것인지 모르겠지만 어쨌든이 문제가 비슷한 문제가있는 사람에게 도움이되기를 바랍니다.

이 편집 : (알렉스의 대답에 주석)에 대한 설명은 전체 신용 펠릭스 클링로 이동 말한다 사람 :

공간이, 즉 AB 의미 자손 선택이다 "모두 매치 요소가 경기 B A "와 일치하는 요소의 하위 항목입니다. AB는 "A와 B와 일치하는 모든 요소를 선택"을 의미합니다. 그래서 그것은 정말로 당신이 달성하기를 원하는 것에 달려 있습니다. #country.save#country .save은 해당하지 않습니다.

+1

실제로는 $ ('# countery.save')처럼 작동하지 않아서이 기능이 저에게 효과적이었습니다. 감사합니다! – Nikola

+0

가끔 공간이 까다 롭다는 것을 발견했습니다. $ (. selector> .item # id)와 같이 작동하지만 $ (. selector> .item #id)는 그렇지 않습니다. –

+14

공백은 * descendant selector *입니다. 즉, 'A B'는 "A와 일치하는 요소의 자손 인 B와 일치하는 모든 요소와 일치"를 의미합니다. 'AB'는 'A와 B와 일치하는 모든 요소를 ​​선택'을 의미합니다. 그래서 그것은 정말로 당신이 달성하기를 원하는 것에 달려 있습니다. '# countery.save'와'#countery. save '는 동일하지 않습니다. –

32

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

id와 class 식별자 사이에 공간을 추가 할 때

+2

"국가"대신에 "처신하다"라고 말한 것이 문제입니까? – amindfv

1

결국 CSS와 동일한 규칙이 적용됩니다.

그래서 저는 this reference이 약간의 가치가 있다고 생각합니다.

+0

참조 내용을 요약 해 주시겠습니까? – krlmlr

+0

실제로, http://api.jquery.com/category/selectors/에 따르면 jQuery에는 자체 선택기가 있습니다. 또한, 실제로 모든 CSS 1-3 셀렉터가 지원된다고 말하지는 않습니다 ... – SamB

+0

@SamB 당신 말이 맞습니다 만, CSS 1-3의 _borrows_와 그 자체를 추가합니다. 나는 여전히 W3C에 대한 링크가이 토론에 유효하다고 생각한다. – akousmata

관련 문제