반응형
필터
: 선택한 요소에서 선택자, 변수, 함수를 통해 선택하는 메서드
기본 필터, 자식 필터, 내용 필터, 입력 상태 필터, 기타 필터 등이 존재한다.
필터 | 설 명 |
:first | 첫번째 요소 |
:last | 마지막 요소 |
:not(selector) | selector이 일치되는 요소 제외 |
:even | 짝수요소 |
:odd | 홀수요소 |
:eq(index) | index에 일치하는 요소 |
:gt(index) | index보다 큰 요소 |
:lt(index) | index보다 작은 요소 |
- :first
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li:first').css('background-color', 'yellow');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- :last
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li:last').css('background-color', 'yellow');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- :eq
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li:eq(4)').css('font-style', 'italic');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- :lt, :gt
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
// lt, gt에 지정한 index는 포함하지 않음
$('li:lt(4)').css('color', 'green');
$('li:gt(4)').css('color', 'brown');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- :odd
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li:odd').css('border-style','inset');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- :even
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li:even').css('border-style','outset');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- :not
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li:not(.not)').css('textDecoration','line-through');
});
</script>
<body>
<h4>기본필터</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
- 필터 first, last, eq, lt, gt의 경우 메소드로 대체하기를 권장
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('li').first().css('background-color', 'yellow');
$('li').last().css('background-color', 'yellow');
$('li').eq(4).css('font-style', 'italic');
// :lt :gt를 대체할 slice(str, end미포함 및 생략 가능)
$('li').slice(0, 4).css('color', 'green');
$('li').slice(5).css('color', 'red');
});
</script>
<body>
<h4>기본필터(통과선으로 표시된 필터는 메소드로 대체할 것. v3.4~)</h4>
<ul>
<li>:first</li>
<li>:last</li>
<li>:eq(index)</li>
<li>:gt(index)</li>
<li>:lt(index)</li>
<li class="not">:odd</li>
<li class="not">:even</li>
<li class="not">:not(select)</li>
</ul>
</body>
</html>
자식 필터
필터 | 설 명 |
:first-child | 부모에 속한 자식 중 첫번째 자식요소 |
:last-child | 부모에 속한 자식 중 마지막 자식요소 |
:nth-child(index) | 자식 중 index로 지정된 위치와 일치 |
:nth-child(even/odd) | 짝수, 홀수 번째 요소들과 일치 |
:nth-child(equation) | 방정식 값 위치의 요소들과 일치 |
:only-child | 자신이 부모 요소의 유일한 자식 요소인 것과 일치 |
- first-child, first, last-child, nth-child
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<style>
ul {
display: inline-block;
}
td {
padding: 10px;
}
</style>
<script>
$(function(){
// 서로 다른 대상(부모)에 속한 각 요소의 첫번째/마지막 항목
$('li:first-child').css('color','purple');
// first()는 대상요소 전체 중 첫번째 항목
$('li').first().css('border-style','dotted');
// 테이블에 배경색 넣기
// child관련 속성 index 1부터 시작
$('td:last-child').css('background','olive');
$('td:nth-child(3)').css('background','gray');
// 배수 칸마다 +시작위치부터
$('td:nth-child(3n+4)').css('background','red');
});
</script>
</head>
<body>
<h4>자식필터</h4>
<ul>
<li>first-child1</li>
<li>last-child1</li>
<li>nth-child1</li>
<li>only-child1</li>
</ul>
<ul>
<li>first-child2</li>
<li>last-child2</li>
<li>nth-child2</li>
<li>only-child2</li>
</ul>
<hr>
<table border="1">
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
</table>
</body>
</html>
- tr:first-child td, tr:nth-child(3) td, nth-child(even)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<style>
ul {
display: inline-block;
}
td {
padding: 10px;
}
</style>
<script>
$(function(){
// 레이어 구조상 td가 tr을 덮음
// $('tr:first-child').css('background','gold');
$('tr:first-child td').css('background','gold');
$('tr:nth-child(3) td').slice(2,7).css('background','navy');
// 행 기준 홀수,짝수
// $('tr:nth-child(odd) td').css('background','black');
$('tr:nth-child(even) td').css('background','pink');
});
</script>
</head>
<body>
<h4>자식필터</h4>
<ul>
<li>first-child1</li>
<li>last-child1</li>
<li>nth-child1</li>
<li>only-child1</li>
</ul>
<ul>
<li>first-child2</li>
<li>last-child2</li>
<li>nth-child2</li>
<li>only-child2</li>
</ul>
<hr>
<table border="1">
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
</table>
</body>
</html>
- nth-child(odd)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<style>
ul {
display: inline-block;
}
td {
padding: 10px;
}
</style>
<script>
$(function(){
// 열 기준 홀수,짝수
$('td:nth-child(odd)').css('background','black');
// $('td:nth-child(even)').css('background','pink');
});
</script>
</head>
<body>
<h4>자식필터</h4>
<ul>
<li>first-child1</li>
<li>last-child1</li>
<li>nth-child1</li>
<li>only-child1</li>
</ul>
<ul>
<li>first-child2</li>
<li>last-child2</li>
<li>nth-child2</li>
<li>only-child2</li>
</ul>
<hr>
<table border="1">
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
</table>
</body>
</html>
- only-child
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<style>
ul {
display: inline-block;
}
td {
padding: 10px;
}
</style>
<script>
$(function(){
// only-child
$('table:only-child').css('border','5px dashed orange');
});
</script>
</head>
<body>
<div>
<table border="1">
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
</body>
</html>
반응형
'jQuery' 카테고리의 다른 글
[jQuery] 6장 기타 필터 (0) | 2024.02.21 |
---|---|
[jQuery] 5장 내용 필터 (0) | 2024.02.21 |
[jQuery] 3장 jQuery 선택자 (0) | 2024.02.21 |
[jQuery] 2장 jQuery 기초 (0) | 2024.02.20 |
[jQuery] 1장 jQuery와 사용법 (0) | 2024.02.19 |