j

jQuery Filter - 기본필터(Basic Filter)

· 12년 전 · 2651

셀렉터에 날개를 달자 ? 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]

 

 
06_001.jpg
[예제 1을 적용한 결과 화면]
 
예제에서는 $(“td:even”)으로 사용했지만 $(“tr:even”).css(“background”, “#DDD”)와 같이 사용하면 각 tr 부분에 스타일을 작성하지 않고 간단하게 “zebra” 스타일의 목록을 만들 때 매우 유용합니다.
 
<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 스타일 목록 만들기]

 

 

06_002.jpg

[예제 2를 이용한 Zebra 스타일 목록 결과]

 
예제중에서 “:even, :odd” 경우 “zebra” 줄무늬 스타일의 목록을 만들 때 자주 사용이 됩니다. 
 
 
:not(selector)

$(“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>#
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
12년 전 조회 2,662
12년 전 조회 3,907
12년 전 조회 3,532
12년 전 조회 2,879
12년 전 조회 7,813
12년 전 조회 3,672
12년 전 조회 1,888
12년 전 조회 1,851
12년 전 조회 2,582
12년 전 조회 3,215
12년 전 조회 2,064
12년 전 조회 1,962
12년 전 조회 2,562
12년 전 조회 2,739
12년 전 조회 1,926
12년 전 조회 2,358
12년 전 조회 2,669
12년 전 조회 2,028
12년 전 조회 2,372
12년 전 조회 4,956
12년 전 조회 2,707
12년 전 조회 2,218
12년 전 조회 2,105
12년 전 조회 2,495
12년 전 조회 2,747
12년 전 조회 5,527
12년 전 조회 6,868
12년 전 조회 1,987
12년 전 조회 3,545
12년 전 조회 8,022
12년 전 조회 3,690
12년 전 조회 1.1만
12년 전 조회 1,829
12년 전 조회 2,009
12년 전 조회 2,677
12년 전 조회 2,998
12년 전 조회 2,623
12년 전 조회 3,223
12년 전 조회 3,622
12년 전 조회 4,476
12년 전 조회 3,502
12년 전 조회 3,695
12년 전 조회 3,704
12년 전 조회 2,939
12년 전 조회 2,748
12년 전 조회 2,389
12년 전 조회 2,554
12년 전 조회 3,377
12년 전 조회 2,983
12년 전 조회 2,652
12년 전 조회 3,680
12년 전 조회 3,438
12년 전 조회 3,278
12년 전 조회 3,010
12년 전 조회 3,680
12년 전 조회 2,420
12년 전 조회 2,146
12년 전 조회 1,728
12년 전 조회 1,926
12년 전 조회 2,401
12년 전 조회 3,764
12년 전 조회 3,865
12년 전 조회 2,936
12년 전 조회 2,543
12년 전 조회 2,322
12년 전 조회 1만
12년 전 조회 1,929
12년 전 조회 2,954
12년 전 조회 2,481
12년 전 조회 2,953
12년 전 조회 3,161
12년 전 조회 2,347
12년 전 조회 2,922
12년 전 조회 3,588
12년 전 조회 2,665
12년 전 조회 2,649
12년 전 조회 2,604
12년 전 조회 8,799
12년 전 조회 2,702
12년 전 조회 2,565
12년 전 조회 3,350
12년 전 조회 2,322
12년 전 조회 2,854
12년 전 조회 2,468
12년 전 조회 2,465
12년 전 조회 4,222
12년 전 조회 1.2만
12년 전 조회 4,313
12년 전 조회 4,267
12년 전 조회 2,726
12년 전 조회 4,027
12년 전 조회 2,169
12년 전 조회 3,055
12년 전 조회 2,394
12년 전 조회 2,784
12년 전 조회 2,581
12년 전 조회 2,873
12년 전 조회 4,953
12년 전 조회 3,222
12년 전 조회 2,279