jQuery 순회 - not() 메서드
정의와 사용법
not() 원소 집합에서 요소를 제거합니다.
문법 1
.not(selector)
매개변수 | 설명 |
---|---|
selector | 문자열 값, 요소를 매칭하는 선택자 표현식을 포함합니다. |
문법 2
.not(element)
매개변수 | 설명 |
---|---|
element | 매칭 집합에서 제거해야 하는 하나나 여러 개의 DOM 요소. |
문법 3
.not(function(index))
매개변수 | 설명 |
---|---|
function(index) | 집합 내 각 요소를 검사하는 함수. this는 현재 DOM 요소입니다. |
상세 설명
주어진 jQuery 객체가 DOM 요소 집합을 나타내는 경우, .not() 메서드는 일치하는 요소의 하위 집합으로 새 jQuery 객체를 생성합니다. 적용된 선택자는 각 요소를 검사합니다; 선택자와 일치하지 않는 요소는 결과에 포함됩니다.
다음과 같은 간단한 목록을 가진 페이지를 생각해 보세요:
<ul> <li>목록 항목 1</li> <li>목록 항목 2</li> <li>목록 항목 3</li> <li>목록 항목 4</li> <li>목록 항목 5</li> </ul>
이 메서드를 목록 항목 집합에 적용할 수 있습니다:
$('li').not(':even').css('background-color', 'red');
이 호출의 결과는 2 번째와 4 번째 항목의 배경색을 빨간색으로 설정합니다. 이는 이들 항목이 선택자와 일치하지 않기 때문입니다(기억해 주세요, :even과 :odd는 0 기반 인덱스를 사용합니다).
정적 요소 제거
.not() 메서드의 두 번째 버전은 이미 다른 방법으로 요소를 찾았을 때 이를 필터 세트에서 제거할 수 있게 합니다. 예를 들어, 목록이 이미 하나의 id를 하나의 항목에 적용한 경우를 생각해 보세요:
<ul> <li>목록 항목 1</li> <li>목록 항목 2</li> <li id="notli">목록 항목 3</li> <li>목록 항목 4</li> <li>목록 항목 5</li> </ul>
저자는 원시 JavaScript 함수 getElementById()를 사용하여 세 번째 목록 항목을 읽고 jQuery 객체에서 그것을 제거할 수 있습니다:
$('li').not(document.getElementById('notli')).css('background-color', 'red');
이 문장은 1, 2, 3, 5 번째 항목의 배경색을 변경합니다. 우리는 더 간단한 jQuery 표현식으로 동일한 작업을 수행할 수 있지만, 이 기술은 다른 라이브러리가 순수 DOM 노드에 대한 참조를 제공할 때 매우 유용합니다.
jQuery 1.4에서는 .not() 메서드가 함수를 파라미터로 사용할 수 있으며, .filter() 메서드와 같습니다. 함수가 true를 반환하는 요소는 필터 세트에서 제외됩니다; 모든 다른 요소는 포함됩니다.