
jQuery 선택자 개념 정리
jQuery 선택자는 HTML 문서 안에서 원하는 요소를 찾기 위해 사용하는 문법이다. 쉽게 말해, “어떤 태그를 선택해서 조작할 것인가?”를 정하는 기준이다.
JavaScript에서도 document.querySelector()나 getElementById()를 사용해 요소를 찾을 수 있지만, jQuery는 $() 문법을 사용해 더 짧고 직관적으로 요소를 선택할 수 있다.
$(선택자).동작();
예를 들어 아래 코드는 class가 title인 요소의 글자 색을 빨간색으로 바꾼다.
$(".title").css("color", "red");
1. 기본 선택자
| 선택자 | 의미 | 예시 |
|---|---|---|
* |
모든 요소 선택 | $("*") |
태그명 |
특정 태그 선택 | $("p") |
#id |
특정 id 선택 | $("#userName") |
.class |
특정 class 선택 | $(".active") |
예시
<h1 id="mainTitle">제목입니다</h1>
<p class="desc">설명 문장입니다</p>
<script>
$("#mainTitle").css("color", "blue");
$(".desc").css("font-weight", "bold");
</script>
#mainTitle은 id가 mainTitle인 요소를 선택하고, .desc는 class가 desc인 요소를 선택한다.
2. 그룹 선택자
여러 요소를 한 번에 선택하고 싶을 때는 쉼표를 사용한다.
$("h1, p, .box").css("color", "green");
위 코드는 h1, p, class가 box인 요소를 한 번에 선택한다.
3. 자식 / 하위 요소 선택자
| 선택자 | 의미 |
|---|---|
$("div p") |
div 안에 있는 모든 p 선택 |
$("div > p") |
div의 바로 아래 자식 p만 선택 |
$("h2 + p") |
h2 바로 다음에 오는 p 선택 |
$("h2 ~ p") |
h2 뒤에 나오는 형제 p 선택 |
하위 선택자와 자식 선택자의 차이
<div class="wrap">
<p>바로 아래 p</p>
<section>
<p>section 안쪽 p</p>
</section>
</div>
$(".wrap p") // wrap 안의 모든 p 선택
$(".wrap > p") // wrap 바로 아래 p만 선택
공백은 깊이에 상관없이 내부 요소를 찾고, >는 바로 아래 자식 요소만 찾는다.
4. 속성 선택자
속성 선택자는 태그의 속성값을 기준으로 요소를 선택할 때 사용한다. 주로 input, checkbox, 링크, 이미지 등을 다룰 때 자주 사용한다.
| 선택자 | 의미 |
|---|---|
$("[name]") |
name 속성이 있는 요소 선택 |
$("[type='text']") |
type이 text인 요소 선택 |
$("a[target='_blank']") |
새 창으로 열리는 a 태그 선택 |
$("img[alt]") |
alt 속성이 있는 img 선택 |
예시
$("input[type='text']").val("기본값 입력");
$("input[name='userId']").focus();
5. 필터 선택자
필터 선택자는 선택된 요소 중에서 특정 조건에 맞는 요소만 다시 골라낼 때 사용한다.
| 선택자 | 의미 |
|---|---|
$("li:first") |
첫 번째 li 선택 |
$("li:last") |
마지막 li 선택 |
$("li:eq(2)") |
인덱스 2번 li 선택 |
$("li:even") |
짝수 인덱스 li 선택 |
$("li:odd") |
홀수 인덱스 li 선택 |
여기서 주의할 점은 인덱스가 1부터 시작하는 것이 아니라 0부터 시작한다는 점이다.
<ul>
<li>첫 번째</li>
<li>두 번째</li>
<li>세 번째</li>
</ul>
<script>
$("li:eq(0)").css("color", "red"); // 첫 번째 li
$("li:eq(1)").css("color", "blue"); // 두 번째 li
</script>
6. 입력 폼 관련 선택자
jQuery는 form 요소를 다룰 때 편리한 선택자도 제공한다.
| 선택자 | 의미 |
|---|---|
$(":text") |
text input 선택 |
$(":password") |
password input 선택 |
$(":checkbox") |
checkbox 선택 |
$(":radio") |
radio 선택 |
$(":checked") |
체크된 요소 선택 |
$(":selected") |
select에서 선택된 option 선택 |
체크박스 예시
$("input:checked").each(function() {
console.log($(this).val());
});
위 코드는 체크된 input들을 하나씩 반복하면서 value 값을 출력한다.
7. 선택자와 이벤트 연결
선택자는 단순히 요소를 찾는 데서 끝나지 않는다. 선택한 요소에 클릭, 입력, 변경 같은 이벤트를 연결할 수 있다.
$(".btn-save").on("click", function() {
alert("저장 버튼을 클릭했습니다.");
});
이 코드는 class가 btn-save인 버튼을 클릭했을 때 알림창을 띄운다.
동적으로 추가되는 요소에는 이벤트 위임 사용
$(document).on("click", ".btn-delete", function() {
alert("삭제 버튼 클릭");
});
Ajax나 JavaScript로 나중에 추가되는 버튼은 일반적인 클릭 이벤트가 바로 적용되지 않을 수 있다. 이럴 때는 document나 부모 요소에 이벤트를 걸고, 실제 클릭 대상 선택자를 두 번째 인자로 전달하는 방식이 안전하다.
8. 자주 쓰는 선택자 예시 모음
// id 선택
$("#loginForm")
// class 선택
$(".menu-item")
// 태그 선택
$("button")
// 특정 영역 안의 버튼 선택
$(".modal button")
// 바로 아래 자식만 선택
$(".list > li")
// 특정 name을 가진 input 선택
$("input[name='email']")
// 체크된 체크박스 선택
$("input[type='checkbox']:checked")
// 비어 있는 input 선택
$("input").filter(function() {
return $(this).val().trim() === "";
});
9. 주의할 점
1) id 선택자는 한 페이지에서 하나만 사용한다
id는 고유한 값이어야 한다. 같은 id를 여러 개 사용하면 선택 결과가 예상과 다르게 나올 수 있다.
2) 너무 긴 선택자는 유지보수가 어렵다
// 좋지 않은 예
$("body .wrap .content .list ul li span.title")
구조가 조금만 바뀌어도 코드가 깨질 수 있다. 가능하면 의미 있는 class를 부여해서 간단하게 선택하는 것이 좋다.
// 더 나은 예
$(".review-title")
3) 동적 요소는 이벤트 위임을 고려한다
화면이 처음 로딩된 뒤 JavaScript로 새롭게 추가되는 요소는 기존 이벤트가 적용되지 않을 수 있다. 이 경우 $(document).on() 또는 부모 요소 기준의 이벤트 위임을 사용한다.
4) 선택 후 바로 조작할 수 있다
jQuery의 장점은 선택한 요소에 바로 메서드를 연결할 수 있다는 점이다.
$(".notice")
.addClass("active")
.text("공지사항이 변경되었습니다.")
.show();
10. 핵심 정리
- jQuery 선택자는 HTML 요소를 찾기 위한 문법이다.
$("선택자")형태로 사용한다.- id는
#, class는., 태그는 태그명으로 선택한다. - 속성 선택자를 사용하면 input, checkbox, link 등을 세밀하게 선택할 수 있다.
- 선택한 요소에는 css 변경, 값 변경, 이벤트 연결 등을 바로 적용할 수 있다.
- 동적으로 추가되는 요소에는 이벤트 위임 방식을 사용하는 것이 좋다.
jQuery 선택자는 화면의 요소를 찾고 조작하기 위한 출발점이다. 선택자를 정확히 이해하면 버튼 클릭 처리, 입력값 검증, 화면 숨김/표시, Ajax 결과 반영 같은 작업을 훨씬 쉽게 구현할 수 있다.
'Computer Science > JQuery' 카테고리의 다른 글
| [jQuery] 06. css()로 스타일 변경하기 (0) | 2026.05.21 |
|---|---|
| [jQuery] 05. text(), html(), val() 사용법 (0) | 2026.03.03 |
| [jQuery] 04. mouseover와 hover 이벤트 사용법 (0) | 2026.03.02 |
| [jQuery] 03. click 이벤트 사용법 (0) | 2026.03.02 |
| [jQuery] 02. 선택자(Selector) 기본 문법 (0) | 2026.02.25 |