[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 |