.filter (selector) > 개발자팁

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

.filter (selector) 정보

jQuery .filter (selector)

본문

.filter (selector)


설명 : 일치하는 요소 집합을 선택기와 일치하는 요소로 줄이거 나 함수의 테스트를 전달하십시오.


DOM 요소 집합을 나타내는 jQuery 객체가 주어지면이 .filter()메소드는 일치하는 요소의 하위 집합에서 새 jQuery 객체를 생성합니다. 제공된 선택기는 각 요소에 대해 테스트됩니다. 선택기와 일치하는 모든 요소가 결과에 포함됩니다.


간단한 목록이있는 페이지를 고려해보십시오.


<ul>

  <li>list item 1</li>

  <li>list item 2</li>

  <li>list item 3</li>

  <li>list item 4</li>

  <li>list item 5</li>

  <li>list item 6</li>

</ul>


이 메소드를 목록 항목 집합에 적용 할 수 있습니다.


$( "li" ).filter( ":even" ).css( "background-color", "red" );


이 호출의 결과들은 선택기 일치로 (그 리콜, 아이템 1, 3 및 5 인 붉은 배경 :even과 :odd0 기반 인덱스를 사용하여).


필터 함수 사용


이 메서드의 두 번째 형식은 선택자 라기보다는 함수에 대해 요소를 필터링 할 수있게 해줍니다. 각 요소에 대해 함수가 반환하면 true(또는 "진실"값) 요소가 필터링 된 집합에 포함됩니다. 그렇지 않으면 제외됩니다. 다소 복잡한 HTML 코드 조각이 있다고 가정 해 보겠습니다.


<ul>

  <li><strong>list</strong> item 1 - one strong tag</li>

  <li><strong>list</strong> item <strong>2</strong> -

    two <span>strong tags</span></li>

  <li>list item 3</li>

  <li>list item 4</li>

  <li>list item 5</li>

  <li>list item 6</li>

</ul>


목록 항목을 선택한 다음 내용을 기준으로 필터링 할 수 있습니다.


$( "li" )

  .filter(function( index ) {

    return $( "strong", this ).length === 1;

  })

    .css( "background-color", "red" );


    이 코드는 정확히 하나의 <strong>태그 만 포함하므로 첫 번째 목록 항목 만 변경합니다 . 필터 함수 내 this에서 차례대로 각 DOM 요소를 참조합니다. 함수에 전달 된 매개 변수는 jQuery 객체와 일치하는 집합 내의 DOM 요소 색인을 알려줍니다.


    또한 index통과 된 함수를 활용할 수 있습니다.이 함수는 필터링되지 않은 일치 요소 집합 내에서 요소의 0 기준 위치를 나타냅니다.


    $( "li" )

      .filter(function( index ) {

        return index % 3 === 2;

      })

        .css( "background-color", "red" );


        이 코드를 변경하면 모듈러스 연산자 ( %)를 사용하여 index3으로 나눌 때 나머지 값을 갖는 모든 항목을 선택 하므로 세 번째 및 여섯 번째 목록 항목이 강조 표시됩니다 2.


        참고 : CSS 선택자 문자열이 전달 .filter()되면 필터링 프로세스 중에 텍스트 및 주석 노드가 항상 결과 jQuery 객체에서 제거됩니다. 특정 노드 또는 노드 배열이 제공되면 필터링 배열의 노드 중 하나와 일치하는 경우에만 텍스트 또는 주석 노드가 결과 jQuery 객체에 포함됩니다.


        예 :

        모든 div의 색상을 변경하십시오. 그런 다음 "중간"클래스가있는 사람들에게 테두리를 추가하십시오.

        <!doctype html>

        <html lang="en">

        <head>

          <meta charset="utf-8">

          <title>filter demo</title>

          <style>

          div {

            width: 60px;

            height: 60px;

            margin: 5px;

            float: left;

            border: 2px white solid;

          }

          </style>

          <script src="https://code.jquery.com/jquery-1.10.2.js"></script>

        </head>

        <body>

         

        <div></div>

        <div class="middle"></div>

        <div class="middle"></div>

        <div class="middle"></div>

        <div class="middle"></div>

        <div></div>

         

        <script>

        $( "div" )

          .css( "background", "#c8ebcc" )

          .filter( ".middle" )

            .css( "border-color", "red" );

        </script>

         

        </body>

        </html>                          

추천
0

댓글 0개

전체 571
개발자팁 내용 검색 jQuery에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT