jquery
jQuery - 형제 요소 셀렉터
제어쿼리는 요소를 찾을 수 있는 다양한 방법을 제공합니다.
li 형제 요소 중에서 선택한 요소의 index 를 콘솔에 출력하는 예제입니다.
다음은 선택한 요소의 인덱스를 반환합니다.
다음은 선택자를 이용한 결과입니다.
다음은 this 를 이용해 인덱스를 얻습니다.
선택자 | 설 명 |
---|---|
:first $().first() |
선택한 요소가 처음으로 나오는 요소를 선택 |
:last $().last() |
선택한 요소가 마지막으로 나오는 요소를 선택 |
:odd | 짝수 번째에 위치하는 모든 요소를 선택 |
:even | 홀수 번째에 위치하는 모든 요소를 선택 |
:eq(n) $().eq(n) |
n 번째 인덱스 요소를 선택 |
:gt(n) | n 인덱스보다 큰 모든 요소를 선택 |
:lt(n) | n 인덱스보다 작은 모든 요소를 선택 |
$().index() | 선택한 요소가 몇 번째 index 인지 반환 |
$().prev() | 선택한 요소의 이전 요소를 선택 |
$().prevAll() | 선택한 요소의 이전 요소 모두를 선택 |
$().prevUntil(s) | 선택한 요소 이전 방향으로 범위 지정 선택한 요소에서 지정한 범위 내의 모든 요소를 선택 |
$().next() | 선택한 요소의 다음 요소를 선택 |
$().nextAll() | 선택한 요소의 다음 요소 모두를 선택 |
$().nextUnitil(s) | 선택한 요소 다음 방향으로 범위 지정 선택한 요소에서 지정한 범위 내의 모든 요소를 선택 |
$().siblings() | 선택한 요소를 제외한 모든 형제 요소를 선택 |
$().slice(start, end) | start 와 end 사이의 모든 요소를 선택. (음수이면 끝에서 시작함.) |
:not(s) | s 가 아닌 요소를 선택 |
:target | 앵커가 있는 요소를 선택 |
:first 와 :last 선택자
:first 는 선택한 요소가 처음으로 나오는 요소를 선택하고, :last 는 마지막으로 나오는 요소를 찾습니다.<script>
$(function(){
/* $(".use-nth").first() 와 동일 */
$(".use-nth:first").css("background", "#ccc");
/* $(".use-nth").last() 와 동일 */
$(".use-nth:last").css("background", "yellow");
});
</script>
<div class="use-nth">알 수 없는 브라우저</div>
<div class="use-nth">사파리</div>
<div class="use-nth">크롬</div>
<div class="use-nth">기타</div>
:odd 와 :even 선택자
이 선택자는 홀수 번째나 짝수 번째의 모든 요소를 선택합니다. 아래 예시는 홀수 번째에 해당하는 모든 요소를 회색으로 지정합니다.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
/* div:nth-child(2n) 과 동일한 결과를 얻음. */
$("#use-nth :even").css("background", "#ccc");
});
</script>
<div id="use-nth">
<div>알 수 없는 브라우저</div>
<div>사파리</div>
<div>크롬</div>
<div>엣지</div>
<div>파이어폭스</div>
<div>익스플러어</div>
<div>기타</div>
</div>
:eq(n), :gt(n), :lt(n) 선택자
:eg() 는 지정한 인덱스가 위치하는 요소를 선택하고, gt() 는 지정한 인덱스보다 큰 모든 요소를, lt() 는 지정한 인덱스보다 작은 모든 요소를 선택합니다.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
/* 세 번째 인덱스를 빨간색으로 ... */
$("#use-nth :eq(2)").css("background", "red");
/* 세 번째 인덱스 보다 큰
인덱스 요소 모두를 회색으로 ... */
$("#use-nth :gt(2)").css("background", "#ccc");
/* 세 번째 인덱스 보다 작은
인덱스 요소 모두를 노랑으로 ... */
$("#use-nth :lt(2)").css("background", "yellow");
});
</script>
<div id="use-nth">
<!-- 0 인덱스 -->
<div>알 수 없는 브라우저</div>
<!-- 1 인덱스 -->
<div>사파리</div>
<!-- 2 인덱스 :eq() -->
<div>크롬</div>
<!-- 3 인덱스 -->
<div>엣지</div>
<!-- 4 인덱스 -->
<div>파이어폭스</div>
<!-- 5 인덱스 -->
<div>익스플러어</div>
<!-- 6 인덱스 -->
<div>기타</div>
</div>
$().index() 선택자
형제 요소 중에서 선택한 요소가 몇 번째 index 인지 반환하며, 0 부터 시작합니다. 형식은 다음 중 하나를 사용할 수 있습니다.$().index();
$().index( 선택자 );
$().index( 요소 );
li 형제 요소 중에서 선택한 요소의 index 를 콘솔에 출력하는 예제입니다.
<style>
#hover li:hover {
background-color: yellow;
}
</style>
<script>
$(document).ready(function(){
$('#hover li').on('click', function(){
var indexNo = $(this).index();
console.log(indexNo);
});
});
</script>
<ul id="hover">
<li>익스플로어</li>
<li>사파리</li>
<li>크롬</li>
<li>기타</li>
</ul>
다음은 선택한 요소의 인덱스를 반환합니다.
<script>
$(document).ready(function(){
$( "div#output" ).html( "인덱스: " + $( "#b" ).index( "li" ) );
// 결과 : 인덱스: 1
});
</script>
<ul>
<li id="a">a</li>
<li id="b">b</li>
<li id="c">c</li>
</ul>
<div id="output"></div>
다음은 선택자를 이용한 결과입니다.
<script>
$(document).ready(function(){
$("div#output").html("인덱스: " + $("li").index( $("#b") ));
// 결과 : 인덱스: 1
});
</script>
<ul>
<li id="a">a</li>
<li id="b">b</li>
<li id="c">c</li>
</ul>
<div id="output"></div>
다음은 this 를 이용해 인덱스를 얻습니다.
<script>
$(document).ready(function(){
$('#hover li').on('click', function(){
var indexNo = $('#hover li').index(this);
console.log(indexNo);
});
});
</script>
<ul id="hover">
<li>익스플로어</li>
<li>사파리</li>
<li>크롬</li>
<li>기타</li>
</ul>
:prev(), :next() 선택자
선택한 요소에서 이전(또는 다음) 요소를 선택할 수 있습니다. 이전(또는 다음) 요소 모두를 선택하려면 :prevAll() 이나 :nextAll() 를 사용하세요.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
/* 세 번째 인덱스에서 다음 요소를 빨간색으로 ... */
$("#use-nth :eq(2)").next().css("background", "red");
/* 세 번째 인덱스에서 다음-다음 요소를 노랑색으로 ... */
$("#use-nth :eq(2)").next().next().css("background", "yellow");
});
</script>
<div id="use-nth">
<!-- 0 인덱스 -->
<div>알 수 없는 브라우저</div>
<!-- 1 인덱스 -->
<div>사파리</div>
<!-- 2 인덱스 :eq() -->
<div>크롬</div>
<!-- 3 인덱스 -->
<div>엣지</div>
<!-- 4 인덱스 -->
<div>파이어폭스</div>
<!-- 5 인덱스 -->
<div>익스플러어</div>
<!-- 6 인덱스 -->
<div>기타</div>
</div>
:prevUntil(s) 과 :nextUntil(s) 선택자
선택한 요소를 기준으로 이전(또는 다음) 방향으로 지정한 범위 내의 요소를 모두 선택합니다. 다음은 "클래스3" 에서 "클래스6" 사이의 요소를 선택합니다.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
$("#use-nth .3").nextUntil(".6").css("background", "yellow");
});
</script>
<div id="use-nth">
<div class="1">알 수 없는 브라우저</div>
<div class="2">사파리</div>
<!-- 클래스3 을 기준으로 -->
<div class="3">크롬</div>
<div class="4">엣지</div>
<div class="5">파이어폭스</div>
<!-- 클래스6 사이의 요소를 선택 -->
<div class="6">익스플러어</div>
<div class="7">기타</div>
</div>
$().siblings() 선택자
선택한 요소를 제외한 모든 요소를 선택합니다.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
$("#use-nth .3").siblings().css("background", "yellow");
});
</script>
<div id="use-nth">
<div class="1">알 수 없는 브라우저</div>
<div class="2">사파리</div>
<div class="3">크롬</div>
<div class="4">엣지</div>
<div class="5">파이어폭스</div>
<div class="6">익스플러어</div>
<div class="7">기타</div>
</div>
$().slice(start, end) 선택자
start 와 end 사이의 모든 요소를 선택하며, 음수는 끝에서 시작합니다.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
$("#use-nth div").slice(1, 4).css("background", "yellow");
});
</script>
<div id="use-nth">
<div>알 수 없는 브라우저</div>
<div>사파리</div>
<div>크롬</div>
<div>엣지</div>
<div>파이어폭스</div>
<div>익스플러어</div>
<div>기타</div>
</div>
:not(s) 선택자
s 가 아닌 요소를 찾습니다.<style>
#use-nth {
border: 1px solid;
width: 200px;
padding: 10px;
}
</style>
<script>
$(function(){
$("#use-nth :not(div)").css("background", "yellow");
});
</script>
<div id="use-nth">
<div>알 수 없는 브라우저</div>
<div>사파리</div>
<!-- div 요소가 아니므로 일치 -->
<aa>크롬</aa>
<div>기타</div>
</div>
0 댓글