셀렉터에 날개를 달자 ? Filter를 이용한 개체 접근
이번 강좌에서는 jQuery에서 지원하고 있는 여러가지 필터중에 기본이 되는 부분과 jQuery의 DOM 필터 메서드,(filter())를 사용하여 사용자가 원하는 요소를 선택하는 방법에 대해 알아 보도록 하겠습니다.
|
형식(표현식) |
설명 |
|
:animated |
에니메이션이 동작중인 모든 요소와 일치하는 요소를 반환합니다. |
|
:eq(index) |
Index에 해당하는 요소를 반환합니다.(단일요소) |
|
:even |
짝수의 요소를 반환합니다. (0부터 시작) |
|
:odd |
홀수의 요소를 반환합니다. (0부터 시작) |
|
:first |
첫번째 요소를 반환합니다. |
|
:last |
마지막 요소를 반환합니다. |
|
:gt(index) |
Index 보다 높은 Index에 해당되는 요소를 모두 반환합니다. |
|
:lt(index) |
Index 보다 낮은 Index에 해당되는 요소를 모두 반환합니다. |
|
:header |
모든 헤더 요소들을 반환합니다.(h1,h2,h3….) |
|
:not(selector) |
Selector와 일치되는 요소를 제외한 나머지 요소를 반환합니다. |
|
:focus |
현재 포커스가 위치한 요소를 반환합니다. (1.6 이상에서 지원) |
| 표 1. [jQuery 필터의 종류] | |
jQuery의 필터는 말 그대로 거르다, 여과하다의 뜻으로 원하는 요소를 다양한 방식으로 걸러내는 역할을 합니다.
일반적으로 셀렉터와 함께 사용하는 경우가 대부분으로 셀렉터와 함께 써야 하는하는 것 알고 있는 분이 많이 있습니다.
하지만 필터는 단독으로도 사용이 가능하며, 필터와 필터를 연결해서도 사용이 가능합니다.
테이블의 컬럼인 td 항목을 예로 들어 설명을 하자면 다음과 같습니다.
|
$(“td:eq(0)”) |
td 요소중에 첫번째 항목만을 선택합니다. (eq의 index는 0부터 시작입니다.) eq의 index는 0부터 시작을 하며 0 이면 요소중 첫번째, 1이면 두번째 요소가 됩니다. |
|
$(“td:even”) $(“td:odd”) |
td 요소중에 짝/홀수번째 요소를 선택합니다. 짝/홀수의 구분은 eq의 index와 동일하게 구분이 됩니다. |
|
$(“td:first”) $("td:last") |
td 요소중에 첫번째 요소, 마지막 요소를 선택합니다. |
|
$(“td:gt(2)”) $(“td:lt(2)”) |
td 요소중에 2번째 요소 이후의 모든 요소를 선택하거나 2번째 요소 이전의 모든 요소를 선택합니다. |
각각의 설명만으로도 각 필터가 어떠한 역할을 하고 있는지 쉽게 이해를 하실 수 있을것입니다. 간단한 예제를 통해 위에 다시 한번 살펴보도록 하겠습니다.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery Selector</title> <link href="../Styles/Site.css" rel="stylesheet" type="text/css" /> <style> div { background : #FFF; padding:10px; margin:10px; } table { border:1px solid #AAA; } td { border:1px solid #AAA; width:40px; height:40px; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(document).ready(function () { $("tr:eq(0) > td:eq(7)").css("background", "#EEE"); $("tr:eq(1) > td:gt(2)").css("background", "#EEE"); $("tr:eq(2) > td:odd").css("background", "#EEE"); $("tr:eq(3) > td:first").css("background", "#AAA"); $("tr:eq(3) > td:last").css("background", "#BBB"); }); </script> </head> <body style="padding:10px;"> <h2>jQuery 시작 Selector</h2> <p>jQuery에 대한 자세한 내용을 보려면 jquery.com 을 방문하세요.</p> <div> <table> <tr> <td>#1</td><td>#2</td><td>#3</td><td>#4</td><td>#5</td> <td>#6</td><td>#7</td><td>#8</td><td>#9</td><td>#10</td> </tr> <tr> <td>#11</td><td>#12</td><td>#13</td><td>#14</td><td>#15</td> <td>#16</td><td>#17</td><td>#18</td><td>#19</td><td>#20</td> </tr> <tr> <td>#21</td><td>#22</td><td>#23</td><td>#24</td><td>#25</td> <td>#26</td><td>#27</td><td>#28</td><td>#29</td><td>#30</td> </tr> <tr> <td>#31</td><td>#32</td><td>#33</td><td>#34</td><td>#35</td> <td>#36</td><td>#37</td><td>#38</td><td>#39</td><td>#40</td> </tr> </table> </div> </body> </html>
[예제 1]
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery Selector</title> <link href="../Styles/Site.css" rel="stylesheet" type="text/css" /> <style> div { background : #FFF; padding:10px; margin:10px; } table { border:1px solid #AAA; width:100% } td { border:1px solid #AAA; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(document).ready(function () { $("tr:even").css("background", "#AAA"); }); </script> </head> <body style="padding:10px;"> <h2>jQuery 시작 Selector</h2> <p>jQuery에 대한 자세한 내용을 보려면 jquery.com 을 방문하세요.</p> <div> <table> <tr> <td>#1</td> </tr> <tr> <td>#2</td> </tr> <tr> <td>#3</td> </tr> <tr> <td>#4</td> </tr> <tr> <td>#5</td> </tr> <tr> <td>#6</td> </tr> <tr> <td>#7</td> </tr> <tr> <td>#8</td> </tr> </table> </div> </body> </html>
[예제 2. :even 필터를 이용한 Zebra 스타일 목록 만들기]
[예제 2를 이용한 Zebra 스타일 목록 결과]
$(“td:not(‘.noselect’)”)
td 요소중에 클래스명이 “notSelect”인 항목을 제외한 요소의 집합을 선택합니다.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery Selector</title> <link href="../Styles/Site.css" rel="stylesheet" type="text/css" /> <style> div { background : #FFF; padding:10px; margin:10px; } table { border:1px solid #AAA; width:100% } td { border:1px solid #AAA; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(document).ready(function () { $("td:not(.notSelect)").css("background", "#AAA"); }); </script> </head> <body style="padding:10px;"> <h2>jQuery 시작 Selector</h2> <p>jQuery에 대한 자세한 내용을 보려면 jquery.com 을 방문하세요.</p> <div> <table> <tr> <td>#1</td> </tr> <tr> <td>#2</td> </tr> <tr> <td class="notSelect">#3</td> </tr> <tr> <td class="notSelect">#4</td> </tr> <tr> <td class="notSelect">#5</td> </tr> <tr> <td>#6</td> </tr> <tr> <td>#7</td> </tr> <tr> <td>#
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 6330 |
|
12년 전 | 1801 | |
| 6329 |
내가짱니네가짱
|
12년 전 | 1228 | |
| 6328 |
AMDbest
|
12년 전 | 492 | |
| 6327 | 12년 전 | 1706 | ||
| 6326 | 12년 전 | 1337 | ||
| 6325 | 12년 전 | 7623 | ||
| 6324 |
AMDbest
|
12년 전 | 2205 | |
| 6323 |
|
12년 전 | 1977 | |
| 6322 | 12년 전 | 2039 | ||
| 6321 | 12년 전 | 2487 | ||
| 6320 |
senseme
|
12년 전 | 592 | |
| 6319 | 12년 전 | 3735 | ||
| 6318 | 12년 전 | 1384 | ||
| 6317 |
kiplayer
|
12년 전 | 6418 | |
| 6316 | 12년 전 | 1019 | ||
| 6315 | 12년 전 | 975 | ||
| 6314 |
상엽나르도
|
12년 전 | 1286 | |
| 6313 |
검은고양이1983
|
12년 전 | 656 | |
| 6312 | 12년 전 | 3118 | ||
| 6311 | 12년 전 | 1414 | ||
| 6310 |
testers
|
12년 전 | 1484 | |
| 6309 | 12년 전 | 988 | ||
| 6308 | 12년 전 | 2605 | ||
| 6307 | 12년 전 | 1656 | ||
| 6306 | 12년 전 | 438 | ||
| 6305 | 12년 전 | 3501 | ||
| 6304 | 12년 전 | 999 | ||
| 6303 | 12년 전 | 825 | ||
| 6302 | 12년 전 | 1191 | ||
| 6301 | 12년 전 | 5570 | ||
| 6300 |
|
12년 전 | 1201 | |
| 6299 |
AMDbest
|
12년 전 | 2807 | |
| 6298 |
AMDbest
|
12년 전 | 2250 | |
| 6297 |
프리랜서개발자
|
12년 전 | 477 | |
| 6296 | 12년 전 | 2937 | ||
| 6295 |
SUPERMANs
|
12년 전 | 1386 | |
| 6294 | 12년 전 | 1293 | ||
| 6293 | 12년 전 | 1346 | ||
| 6292 |
오늘도망했다
|
12년 전 | 3272 | |
| 6291 |
senseme
|
12년 전 | 2032 | |
| 6290 |
senseme
|
12년 전 | 3689 | |
| 6289 |
senseme
|
12년 전 | 8581 | |
| 6288 |
senseme
|
12년 전 | 4173 | |
| 6287 |
senseme
|
12년 전 | 3746 | |
| 6286 |
senseme
|
12년 전 | 1365 | |
| 6285 |
senseme
|
12년 전 | 1439 | |
| 6284 |
프로프리랜서
|
12년 전 | 3160 | |
| 6283 |
프로프리랜서
|
12년 전 | 3993 | |
| 6282 |
프로프리랜서
|
12년 전 | 4397 | |
| 6281 |
프로프리랜서
|
12년 전 | 1607 | |
| 6280 | 12년 전 | 1291 | ||
| 6279 |
AMDbest
|
12년 전 | 881 | |
| 6278 | 12년 전 | 982 | ||
| 6277 |
senseme
|
12년 전 | 2720 | |
| 6276 |
senseme
|
12년 전 | 2736 | |
| 6275 |
senseme
|
12년 전 | 1261 | |
| 6274 |
|
12년 전 | 2806 | |
| 6273 | 12년 전 | 1279 | ||
| 6272 | 12년 전 | 8462 | ||
| 6271 |
senseme
|
12년 전 | 1513 | |
| 6270 |
senseme
|
12년 전 | 3772 | |
| 6269 |
senseme
|
12년 전 | 6381 | |
| 6268 |
senseme
|
12년 전 | 1565 | |
| 6267 | 12년 전 | 2844 | ||
| 6266 | 12년 전 | 580 | ||
| 6265 | 12년 전 | 1302 | ||
| 6264 | 12년 전 | 1160 | ||
| 6263 |
senseme
|
12년 전 | 1321 | |
| 6262 |
senseme
|
12년 전 | 3314 | |
| 6261 |
senseme
|
12년 전 | 1090 | |
| 6260 |
senseme
|
12년 전 | 1830 | |
| 6259 |
senseme
|
12년 전 | 1260 | |
| 6258 |
senseme
|
12년 전 | 919 | |
| 6257 | 12년 전 | 1408 | ||
| 6256 | 12년 전 | 2103 | ||
| 6255 |
senseme
|
12년 전 | 1383 | |
| 6254 |
senseme
|
12년 전 | 1269 | |
| 6253 |
senseme
|
12년 전 | 1789 | |
| 6252 |
kiplayer
|
12년 전 | 14781 | |
| 6251 | 12년 전 | 1073 | ||
| 6250 | 12년 전 | 871 | ||
| 6249 | 12년 전 | 2729 | ||
| 6248 |
senseme
|
12년 전 | 8967 | |
| 6247 | 12년 전 | 1291 | ||
| 6246 |
프로프리랜서
|
12년 전 | 1170 | |
| 6245 |
프로프리랜서
|
12년 전 | 1628 | |
| 6244 |
프로프리랜서
|
12년 전 | 1131 | |
| 6243 |
프로프리랜서
|
12년 전 | 1262 | |
| 6242 |
프로프리랜서
|
12년 전 | 3553 | |
| 6241 |
프로프리랜서
|
12년 전 | 1457 | |
| 6240 |
프로프리랜서
|
12년 전 | 2126 | |
| 6239 |
softhead
|
12년 전 | 1145 | |
| 6238 |
senseme
|
12년 전 | 1313 | |
| 6237 |
senseme
|
12년 전 | 3028 | |
| 6236 | 12년 전 | 876 | ||
| 6235 | 12년 전 | 1345 | ||
| 6234 | 12년 전 | 1605 | ||
| 6233 | 12년 전 | 2036 | ||
| 6232 | 12년 전 | 2141 | ||
| 6231 | 12년 전 | 2567 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기