반응형

jQuery 에서 특정 하위 개체들에 대하여 검색을 할 경우 find() 혹은 filter() 함수를 사용할 수 있다.

이 두 함수는 비슷한듯 하지만 특정 분야에 최적화(?) 되어 있다고 할 수 있다.


말그대로 find 는 검색을 filter 는 필터링을 한다.


▶ HTML

<div id=fruits>

<div id=apple>apple</div>

<div id=kiwi>kiwi</div>

<div id=pineapple>pineapple</div>

</div>


▶ Scirpt (예제 소스는 한가지 방법이 아니라 다양하게 select 해오는 방법을 기술함)

1) find 예제

 - fruits div 하위에 있는 div 중 아이디가 apple 인 div 가져오기

 - script  

$("#fruits").find("[id=apple]")

 - 결과

<div id=fruits>

     <div id=apple>apple</div>

<div id=kiwi>kiwi</div>

<div id=pineapple>pineapple</div>

</div>


2) filter 예제

 - fruits div 하위에 있는 div 중 아이디가 kiwi 인 div 가져오기

 - script

$("#fruits div").filter(function () { return this.id == "kiwi"; })

 - 결과

<div id=fruits>

      <div id=apple>apple</div>

<div id=kiwi>kiwi</div>

<div id=pineapple>pineapple</div>

</div>


find 는 전체(혹은 기준 값 하위)에서 검색을 하지만 filter 는 자기 자신의 레벨에서 검색을 한다.

그래서 apple, kiwi, pineapple 을 검색하기 위하여 find 를 쓸때는 $("#fruits") 를 썼지만 filter 를 쓸때는 $("#fruits div") 로 사용하였다.

그래야 fruits div 하위이 div 를 검색할 수 있기 때문이다.

만약 filter 를 사용할때 $("#fruits) 을 사용했다면 하위가 아닌 fruits 자체를 kiwi 라는 아이디명과 비교했을 것이다.


빨강색 : $("#fruits).find() 의 대상이 되는 역역, $("#fruits div").filter() 이 대상이 되는 영역

파랑색 : $("#fruits).filter() 의 대상이 되는 영역

반응형

'IT > Client Script' 카테고리의 다른 글

JavaScript 정규식  (0) 2018.01.26
JavaScript 금액 표시 정규식  (0) 2018.01.16
복리 단리 계산  (0) 2018.01.11
[jQuery] 조건에 맞지 않는 Elements 제거  (0) 2018.01.03
오늘 날짜 가져와 형태 변환  (0) 2017.12.21

+ Recent posts