반응형
    
    
    
  
필터링
| 메소드 | 설 명 | 
| $(selector).first() | 선택한 요소의 첫 번째 요소를 반환 | 
| $(selector).last() | 선택한 요소의 마지막 요소를 반환 | 
| $(selector).eq(index) | 선택한 요소 중 index 번째 요소를 반환 | 
| $(selector).filter(criteria, function(index)) | 선택한 요소 중 특정 조건(criteria)에 일치하는 요소들을 반환 | 
| $(selector).not(criteria, function(index)) | 선택한 요소 중 특정 조건(criteria)에 일치하는 요소를 제거하고 반환 | 
| $(selector).is(selectorElement, function(index, element)) | 선택된 요소 중 하나가 selectorElement와 일치하는 지 확인. true 또는 false를 리턴 | 
- filter()
1. 선택자 활용
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h4>filter(): 선택자, 변수, 함수를 이용해 필터링하는 메소드</h4>
    <div id="d1">
        <ul>
            <li>0</li>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <input type="button" value="filter()">
    </div>
<script src="../js/jquery-3.7.1.min.js"></script>
<script>
    $('input').on('click', function(){
        // 선택자 활용
        $('li').filter(':even').css('color', 'red');
        $('li').filter(':first-child').css('backgroundColor', 'gray');
    });
</script>
</body>
</html>

2. 변수 활용
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h4>filter(): 선택자, 변수, 함수를 이용해 필터링하는 메소드</h4>
    <div id="d1">
        <ul>
            <li>0</li>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <input type="button" value="filter()">
    </div>
<script src="../js/jquery-3.7.1.min.js"></script>
<script>
    $('input').on('click', function(){
        // 변수 활용
        let a = ':odd'; // 홀수 선택 가상클래스
        let b = $('li').eq(3);
        $('li').filter(a).css('border', '4px double blue');
        $('li').filter(b).css('box-shadow', '4px 4px 2px blue');
    });
</script>
</body>
</html>

3. 함수 활용
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h4>filter(): 선택자, 변수, 함수를 이용해 필터링하는 메소드</h4>
    <div id="d1">
        <ul>
            <li>0</li>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <input type="button" value="filter()">
    </div>
<script src="../js/jquery-3.7.1.min.js"></script>
<script>
    $('input').on('click', function(){
        // 함수 활용
        $('li').filter(function(i, v){
            console.log(i, v); // i: 인덱스 / v-li
            return i == 0 || i == 3
        }).css('color', 'pink');
    });
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h4>filter(): 선택자, 변수, 함수를 이용해 필터링하는 메소드</h4>
    <div id="d1">
        <ul>
            <li>0</li>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <input type="button" value="filter()">
    </div>
<script src="../js/jquery-3.7.1.min.js"></script>
<script>
    $('input').on('click', function(){
        // 함수 활용
        /* $('li').filter(function(i, v){
            console.log(i, v); // i: 인덱스 / v-li
            return i == 0 || i == 3
        }).css('color', 'pink'); */
        // 위의 함수와 반대되는 결과물
        $('li').not(function(i, v){
            console.log(i, v); // i: 인덱스 / v-li
            return i == 0 || i == 3
        }).css('color', 'yellow');
    });
</script>
</body>
</html>

- is()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script src="../js/jquery-3.7.1.min.js"></script>
    <h4>is(): 일치여부를 boolean으로 반환</h4>
    <div id="d2">
        <!-- id = d2 내부 div를 부모로 가진/갖지않은 p요소 -->
        <div>
            <p>부모(div)있는 p</p>
        </div>
        <p>부모(div)없는 p</p>
        <div>
            <p>부모(div)있는 p</p>
        </div>
        <form id="frm">
            <p>부모(form)있는 p</p>
        </form>
    </div>
<script>
    $('p').on('click',function(){
        if( $(this).parent().is('#d2 div') ) {
            // 해당 부모영역에 스타일 적용
            $(this).parent().css('backgroundColor', 'gold');
        } else {
            // 조건에 맞지 않는 부모의 type과 id 정보를 출력
            alert(`부모의 요소 타입은 ${$(this).parent().prop('tagName')} 이고, `
                 + `id = ${$(this).parent().attr('id')}` );
        }
    });
</script>
</body>
</html>


반응형
    
    
    
  'jQuery' 카테고리의 다른 글
| [jQuery] 18장 콜백 함수와 체이닝, 동기와 비동기 (1) | 2024.02.27 | 
|---|---|
| [jQuery] 17장 효과, 애니메이션 (0) | 2024.02.27 | 
| [jQuery] 15장 DOM 탐색 (0) | 2024.02.26 | 
| [jQuery] 14장 trigger와 trigger Handler (0) | 2024.02.26 | 
| [jQuery] 13장 이벤트 연결 메소드 (0) | 2024.02.23 |