jQuery 선택자
jQuery 선택자란?
▶ jQuery의 선택자는 HTML 문서에서 요소를 선택하기 위해 사용되는 표현식입니다. jQuery를 사용하면 CSS 선택자와 유사한 방식으로 요소를 선택할 수 있고 아래와 같은 형식을 기본으로 사용합니다.
그 외에 다양한 선택자 종류를 표로 알아봅니다.
1
$(selector)
01. 기본 선택자
| 선택자 종류 | 설명 | |
|---|---|---|
| 태그 선택자 | $(“p”) | p요소를 선택함 |
| id 선택자 | $(“#gnb”) | #gnb요소를 선택함 |
| class 선택자 | $(“.logo”) | .logo요소를 선택함 |
| 자식 선택자 | $(“#gnb > ul > li”) | #gnb의 자식요소의 자식요소 li를 선택함 |
| 하위 선택자 | $(“#gnb ul) | #gnb의 하위에 있는 모든 ul요소를 선택함 |
| 인접 선택자 | $(“#visual + #content”) | #visual요소 다음에 오는 #content요소를 선택함 |
| 형제 선택자 | $(“#visual ~ #footer””) | #visual요소의 형제 요소인 #footer를 선택함 |
| 종속 선택자 | $(“div.util”) | div요소 중 class가 util인 요소를 선택함 |
| 그룹 선택자 | $(“.left, .right, #banner”) | .left, .right, #banner요소들을 선택함 |
| 전체 선택자 | $(“*”) | 모든 요소를 선택함 |
02. 속성 선택자
| 선택자 종류 | 설명 | |
|---|---|---|
| 요소[속성] | $(“span[class]”) | span요소 중 class속성을 가진 요소를 선택함 |
| 요소[속성=’값’] | $(“span[class=’abc’]”) | span요소 중 class가 ‘abc’인 요소를 선택함 |
| 요소[속성!=’값’] | $(“span[class!=’abc’]”) | span요소 중 class가 ‘abc’가 아닌 요소를 선택함 |
| 요소[속성~=’값’] | $(“span[class~=’abc’]”) | span요소 중 class가 ‘abc’를 포함하는 요소를 선택함 |
| 요소[속성*=’값’] | $(“span[class*=’abc’]”) | span요소 중 class가 ‘abc’를 포함하는 요소를 모두 선택함 |
| 요소[속성│=’값’] | $(“span[class│=’abc’]”) | span요소 중 class가 ‘abc’나 ‘abc-‘로 시작하는 요소를 선택함 |
| 요소[속성^=’값’] | $(“span[class^=’abc’]”) | span요소 중 class가 ‘abc’로 시작하는 요소를 선택함 |
| 요소[속성$=’값’] | $(“span[class$=’abc’]”) | span요소 중 class가 ‘abc’로 끝나는 요소를 선택함 |
🔔 $(“span[class~=’abc’]”)의 형식으로 사용할 경우 ‘abc’ 앞뒤로 연결된 문자가 없어야 합니다.
즉, ‘bg abc’는 선택되나 ‘bg_abc’는 선택되지 않습니다.
03. 필터 선택자
① 필터 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| :even | $(“tr:even”) | tr요소 중 짝수 행만 선택함 |
| :odd | $(“tr:odd”) | tr요소 중 홀수 행만 선택함 |
| :first | $(“td:first”) | 첫번째 td요소를 선택함 |
| :last | $(“td:last”) | 마지막 td요소를 선택함 |
| :header | $(“:header”) | 헤딩(h1~h6) 요소를 선택함 |
| :eq() | $(“li:eq(0)”) | index가 0인 li요소를 선택함. index는 0번이 첫번째 요소 |
| :gt() | $(“li:gt(0)”) | index가 0보다 큰 li요소를 선택함 |
| :lt() | $(“li:lt(2)”) | index가 2보다 작은 li요소를 선택함 |
| :not() | $(“li:not(.bg)”) | li요소 중 class명이 bg가 아닌 요소를 선택함 |
| :root | $(“:root”) | html을 의미함 |
| :animated | $(“:animated”) | 움직이는 요소를 선택함 |
② 자식 필터 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| :first-child | $(“span:first-child”) | 첫번째 span요소를 선택함 |
| :last-child | $(“span:last-child”) | 마지막 span요소를 선택함 |
| :first-of-type | $(“span:first-of-type”) | span요소 중 첫번째 span요소를 선택함 |
| :last-of-type | $(“span:last-of-type”) | span요소 중 마지막 span요소를 선택함 |
| :nth-child | $(“span:nth-child(2)”) | 두번째 span요소를 선택함. 2n은 짝수 요소만, 2n+1은 홀수 요소만 |
| :nth-last-child | $(“span:nth-last-child(2)”) | 마지막에서 두번째 span요소를 선택함 |
| :nth-of-type | $(“span:nth-of-type(2)”) | span요소 중 두번째 span요소를 선택함 |
| :nth-last-of-type | $(“span:nth-last-of-type(2)”) | span요소 중 마지막 span요소를 선택함 |
| :only-child | $(“div > span:only-child”) | div의 자식요소에서 오직 span요소가 하나만 있는 span요소를 선택함 |
| :only-of-type | $(“div > span:only-of-type”) | div의 자식요소에서 span요소가 하나만 있는 span요소를 선택함 |
🔔 child가 붙은 선택자는 요소가 순차적으로 나열되어 있을 때 사용하고,
of-type이 붙은 선택자는 순차적이 아니더라도 동일한 요소면 선택이 가능합니다.
③ 콘텐츠 필터 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| :contains() | $(“p:contains(‘html’)”) | p요소 중 html텍스트를 포함하고 있는 p요소를 선택함 |
| :empty | $(“div:empty”) | div요소 중 자식 요소가 없는 div요소를 선택함 |
| :parent | $(“span:parent”) | span요소 중 자식 요소가 있는 span요소를 선택함 |
| :has | $(“section:has(article)”) | section요소 중 article을 하위 요소로 갖고 있는 section요소를 선택함 |
④ 폼 필터 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| :text | $(“input:text”) | /input type=”text”/요소를 선택함 |
| :password | $(“input:password”) | /input type=”password”/요소를 선택함 |
| :image | $(“input:image”) | /input type=”image”/요소를 선택함 |
| :file | $(“input:file”) | /input type=”file”/요소를 선택함 |
| :button | $(“:button”) | /input type=”button”/, /button/요소를 선택함 |
| :checkbox | $(“input:checkbox”) | /input type=”checkbox”/요소를 선택함 |
| :radio | $(“input:radio”) | /input type=”radio”/요소를 선택함 |
| :submit | $(“input:submit”) | /input type=”submit”/요소를 선택함 |
| :reset | $(“input:reset”) | /input type=”reset”/요소를 선택함 |
| :input | $(“:input”) | 모든 /input/요소를 선택함 |
| :checked | $(“input:checked”) | /input/요소에 checked 속성이 있는 요소를 선택함 |
| :selected | $(“option:selected”) | /option/요소에 selected 속성이 있는 요소를 선택함 |
| :focus | $(“input:focus”) | 현재 /input/요소에 focus가 있는 요소를 선택함 |
| :disabled | $(“input:disabled”) | /input/요소에 disabled속성이 있는 요소를 선택함 |
| :enabled | $(“input:enabled”) | /input/요소 중 enabled가 아닌 요소를 선택함 |
⑤ 가시성 필터 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| :hidden | $(“div:hidden”) | div요소 중 hidden인 요소를 선택함 |
| :visible | $(“div:visible”) | div요소 중 visible인 요소를 선택함 |
04. 탐색 선택자
① 기본 탐색 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| children() | $(“div”).children() | div요소의 자식 요소를 선택함 |
| parent() | $(“p”).parent() | p요소의 부모 요소를 선택함 |
| parents() | $(“p”).parents(“div”) | p요소의 부모가 되는 모든 div 요소를 선택함 |
| closet() | $(“p”).closet(“div”) | p요소의 부모가 되는 첫번째 div 요소를 찾음 |
| next() | $(“div.m”).next() | div.m요소의 다음 요소를 선택함 |
| nextAll() | $(“div.m”).nextAll() | div.m요소의 다음 요소들을 모두 선택함 |
| nextUntil() | $(“div.m”).nextUntil(“p”) | div.m 다음 요소부터 p요소 전까지의 요소를 선택함 |
| prev() | $(“div.m”).prev() | div.m요소의 이전 요소를 선택함 |
| prevAll() | $(“div.m”).prevAll() | div.m요소의 이전 요소들을 모두 선택함 |
| prevUntil() | $(“div.m”).prevUntil(“p”) | div.m이전 요소부터 p요소 다음 요소까지를 선택함 |
| siblings() | $(“div”).siblings(“p”) | div요소의 형제 요소 중 p요소를 선택함 |
| find() | $(“div”).find(“span”) | div의 하위요소 중 span요소를 선택함 |
| filter() | $(“div”).filter(“.m”) | div요소 중 class가 m인 요소를 선택함 |
| not() | $(“div”).not(“.m”) | div요소 중 class가 m이 아닌 요소를 선택함 |
| has() | $(“div”).has(“span”) | div요소 중 span요소를 포함하고 있는 요소를 선택함 |
| eq() | $(“div”).eq(0) | div요소 중 index가 0인 요소들을 선택함. index 0번이 첫번째 요소 |
| gt() | $(“div”).gt(0) | index가 0보다 큰 div 요소들을 선택함 |
| lt() | $(“div”).lt(3) | index가 3보다 작은 div 요소들을 선택함 |
② 기타 탐색 선택자의 종류
| 선택자 종류 | 설명 | |
|---|---|---|
| add() | $(“div”).add(“p”) | div요소와 p요소를 선택함 |
| addBack() | $(“div”).children(“p”).addBack() | p요소와 이전 선택요소 div를 선택함 |
| end() | $(“div”).find(“span”).css(…).end().find(“em”) | .css(…)까지의 실행이 끝나면 다시 $(“div”)로 돌아와 find(“em”)부터 실행 |
| is() | if(“div”).children().is(“p”) | 선택한 요소를 판별해주는 선택자로 보통 if문의 조건식으로 사용 |
This post is licensed under CC BY 4.0 by the author.
