jQuery
제이쿼리 jQuery closest(), parant(), siblings(), children()
dev.mk
2018. 3. 3. 20:07
반응형
HTML 예제
1
2
3
4
5
6
7
8
9
10
11
|
<div id="grandmom">
<div id="mom">
<div id="me">
<div id="son">
<div id="grandson"></div>
</div>
<div/>
<input type="text" id="brother"/>
<a id="sister"/>
</div>
<div/>
|
cs |
1. parent()
1
2
3
4
5
|
$(document).on("click","#me",function(){
$(this).parent().css("background-color","red");
});
|
cs |
결과 : grandmom , mom의 div색이 red로 변경됨.
parent() 함수는 부모들을 호출한다. grandmom만 호출하려면 $(this).parent().parent()로 호출하는 법이 있지만
index로 호출하는 eq() 함수가 있다. $(this).parent().eq(2); 이렇게 하면 2번째 상위의 parent 요소가 선택된다.
2. closest()
1
2
3
4
5
|
$(document).on("click","#me",function(){
$(this).closest().css("background-color","red");
});
|
cs |
결과 : mom의 div색이 red로 변경됨
closest() 함수는 가장 가까운 부모를 선택한다.
3.1 siblings()
1
2
3
4
5
|
$(document).on("click","#me",function(){
$(this).siblings();
});
|
cs |
결과 : brother, sister가 선택 된다.
형제 요소들을 호출한다. 만약 바로 옆에 있는 형제만 선태하고 싶다면 next() 함수를 사용한다,
$(this).next("input") 이렇게 사용하면 brother가 선택된다.
3-2. siblings()
1
2
3
4
5
|
$(document).on("click","#me",function(){
$(this).siblings('#sister').after('<button type="button" id="sister_2">시스터2</button>');
});
|
cs |
결과 : a태그 sister 다음에 버튼 태그가 생긴다.
4. children()
결과 : son
직계 자식을 선택한다. son 밑에 grandson이 있지만 이 요소는 선택되지 않는다.
grandson까지 선택하려면 find()를 사용한다. find는 depth에 상관없이 하위 자손들을 모두 선택한다.
jQuery 선택자 에서 자손과 자식은 다른 의미로 사용 된다.
자손 : depth 하위의 자식들도 포괄하고
자식 : 직계자식만을 의미한다.
본문내용의 출처 https://brunch.co.kr/@ourlove/78
반응형