
jQuery 선택자와 필터 완벽 가이드
jQuery 선택자와 필터는 DOM 요소를 쉽게 선택하고, 원하는 요소를 빠르게 조작할 수 있도록 도와줍니다. 이 글에서는 jQuery에서 제공하는 다양한 선택자와 필터를 실무 예제와 함께 소개하며, 효율적인 DOM 조작 방법을 설명합니다.
1. jQuery 선택자 기본 사용법
jQuery 선택자는 HTML 문서에서 요소를 선택하는 데 사용됩니다. CSS 선택자처럼 동작하며, 다양한 방법으로 DOM 요소를 선택할 수 있습니다.
1.1. 기본 선택자
$('#id'); // id로 선택
$('.class'); // class로 선택
$('element'); // 태그 이름으로 선택
기본 선택자는 각각 #id, .class, element를 사용하여 ID, 클래스, 태그 이름으로 요소를 선택할 수 있습니다.
1.2. 복합 선택자
$('#content .item'); // id와 class 결합
$('li:first'); // 첫 번째 li 요소 선택
$('input[type="text"]'); // 특정 속성으로 선택
복합 선택자는 여러 조건을 결합하여 더 정밀하게 선택할 수 있습니다. 예를 들어 $('#content .item')은 id가 content인 요소 내의 item 클래스를 가진 모든 자식 요소를 선택합니다.
2. jQuery 필터 메서드
jQuery는 선택된 요소 집합에서 원하는 요소만을 필터링할 수 있는 메서드를 제공합니다. 이를 통해 더욱 효율적으로 특정 조건에 맞는 요소를 선택할 수 있습니다.
2.1. .eq() 메서드
$('li').eq(0); // 첫 번째 li 요소 선택
.eq() 메서드는 선택된 요소 중 지정한 인덱스의 요소를 선택합니다. 인덱스는 0부터 시작합니다.
2.2. .first(), .last() 메서드
$('li').first(); // 첫 번째 li 요소 선택
$('li').last(); // 마지막 li 요소 선택
.first()와 .last() 메서드는 각각 선택된 요소 중 첫 번째, 마지막 요소를 반환합니다.
2.3. .not() 메서드
$('li').not('.active'); // .active 클래스를 제외한 li 선택
.not() 메서드는 선택된 요소 중 특정 요소를 제외할 수 있습니다. 예를 들어 .active 클래스를 제외한 모든 li 요소를 선택할 수 있습니다.
2.4. .filter() 메서드
$('li').filter('.active'); // .active 클래스를 가진 li 요소 선택
.filter() 메서드는 선택된 요소 중 특정 조건을 만족하는 요소만 선택합니다. 예를 들어 .active 클래스를 가진 li 요소만 선택할 수 있습니다.
2.5. .has() 메서드
$('div').has('p'); // p 요소를 포함하는 div 요소 선택
.has() 메서드는 선택한 요소 중 특정 자식 요소를 포함하는 요소를 선택합니다. 예를 들어 div 요소 중 p 요소를 포함하는 div를 선택할 수 있습니다. 이 메서드는 자식 요소가 특정 조건을 만족하는지 확인할 때 유용합니다.
3. jQuery 속성 선택자
jQuery 속성 선택자는 HTML 요소의 속성을 기준으로 선택할 수 있는 기능을 제공합니다. 특정 속성을 가진 요소를 선택할 때 유용합니다.
3.1. 속성 값으로 선택
$('input[type="text"]'); // type 속성이 "text"인 input 요소 선택
속성 선택자는 input[type="text"]와 같이 특정 속성과 값을 기준으로 선택할 수 있습니다.
3.2. 속성 값 포함 선택
$('a[href^="https"]'); // https로 시작하는 href 속성을 가진 a 요소 선택
^ 기호는 속성 값이 특정 문자열로 시작하는 요소를 선택하는 데 사용됩니다. 이 외에도 $ (끝으로 끝나는 문자열)이나 * (포함하는 문자열)과 같은 조건도 사용할 수 있습니다.
4. 실무 예제 - 선택자와 필터 활용
$('#productList li').filter('.sale').each(function() {
$(this).css('background-color', 'yellow');
});
위 예제는 #productList의 li 요소 중 .sale 클래스를 가진 요소에 배경색을 적용하는 예제입니다. .filter()와 .each() 메서드를 결합하여 조건에 맞는 요소에 스타일을 적용합니다.
5. 주의할 점
- 성능: 너무 많은 요소를 선택하거나 필터링을 과도하게 사용할 경우 성능에 영향을 미칠 수 있습니다.
- 효율적인 선택: 자주 사용되는 선택자는 캐시하여 성능을 최적화하는 것이 좋습니다.
- jQuery 선택자 사용 범위: 복잡한 조건을 사용할 때는 CSS 선택자와 비교해 성능 차이를 고려해야 합니다.
6. 결론
jQuery 선택자와 필터는 효율적인 DOM 요소 선택과 조작을 가능하게 합니다. 다양한 선택자와 필터 메서드를 활용하면 코드가 간결해지고, 더 직관적인 DOM 조작이 가능합니다. 실무에서 유용하게 활용할 수 있는 기능들이니, 여러 상황에 맞는 선택자와 필터를 잘 활용해 보세요.