[JQuery] 제이쿼리, find() 함수 사용법! children() 함수와의 차이점
- 웹 개발/JQuery
- 2019. 4. 19. 23:23
find() 함수
- 매개변수 : selector(#id .class), Jquery객체, element
- 요소의 하위에 속한 요소들을 selector, Jquery 객체, 자바스크립트 객체를 통해서 가져온다.
- 제이쿼리에 사용할 수 있으며 () 매개변수 안에 selector가 들어갈수 있다.
출처 : jquery api
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul> | cs |
만약 item-ii 라는 클래스를 가진 li 태그를 찾고싶다면(말그대로 find)
1 | $( "li.item-ii" ).find( "li" ).css( "background-color", "red" ); | cs |
이렇게 찾아서 처리할 수 있습니다.
해석해보자면 li태그인데 item-ii 클래스를 가진 li 태그를 찾아서 배경색을 빨간색으로 바꿔!
또한 li 태그 객체 리스트로 받은 제이쿼리 배열을 담은 변수 allListElements를 find함수의 인자로 넣어보면
1 2 | var allListElements = $( "li" ); $( "li.item-ii" ).find( allListElements); | cs |
모든 li태그를 allListElements 변수에 담으면 allListElements는 제이쿼리 배열객체가 됩니다.
이렇게 find함수 인자로 넣게되면 li.item-ii의 자식태그인 li태그들을 모두 찾게 됩니다.
즉, $(부모).find(만족하는 자식) 의 공식이 성립한다고 할 수 있습니다.
allListElements는 모든 li태그이지만 find함수 인자로 들어가는순간 의미가 달라지게 됩니다. li.item-ii의 selector의 자식으로 li 제이쿼리 객체를 찾는 것입니다.
find() 함수와 children() 함수의 차이점
- find() 함수는 선택된 태그(객체)의 모든 자식태그들을 검색해서 찾는 것
- children() 함수는 선택된 태그(객체)의 바로 1단계 아래 자식을 찾는것.
1 2 | $("ul.level-1").find("li"); $("ul.level-1").children("li"); | cs |
이 두개의 Jquery 코드는 의미가 완전히 다릅니다.
1번 문장은 깊숙히 있는 li태그(class=item-1,2,3)까지 모두 배열로 가져오고,
2번 문장은 ul태그 바로 자식태그인 li태그(item-i,ii,iii)까지만 배열로 가져오게 됩니다.
children() 함수의 특이한 사용법
- 만약 다음과같은 테이블 구조가 있다고 할때,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <table id="tbl1"> <thead></thead> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </tbody> </table> | cs |
저 123을 가진 tr(첫번째 tr)을 가져오고 싶다면
1 | $("#tbl1 tbody").children("tr:first"); | cs |
이런식으로 처리할 수도 있습니다.
'웹 개발 > JQuery' 카테고리의 다른 글
[Jquery] 제이쿼리 data() 함수 사용 및 예제 (0) | 2019.07.07 |
---|---|
[Jquery] 제이쿼리, $.ajax() 함수 활용. 비동기 통신 (2) | 2019.07.07 |
[JQuery] 제이쿼리, 선택자 종류 및 사용법! (0) | 2019.05.01 |
[JQuery] 제이쿼리, children() 함수 예제 및 사용법. (0) | 2019.04.21 |