728x90
반응형
asd
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <script>
        $(document).ready(function(){
            // 그룹선택자의 엘리먼트들이 기술된 순서 상관없이
            // html요소의 인덱스에 맞춰 오름차순으로 정렬됨.
            var $searchEles = $('p, span, div.simpletext1');
            console.log($searchEles);

            var resultText ="";
            resultText = resultText + "엘리먼트 개수: " + $searchEles.length + "\n";
            // resultText += "엘리먼트 개수: " + $searchEles.length + "\n"; //같음
            // resultText = "엘리먼트 개수: 3\n";

            $searchEles.each(function(){
                console.log("this : "+this.tagName);
                console.log("$(this) : "+$(this).prop('tagName'));
                resultText += $(this).text() + ", ";
            });

            // $.each($searchEles, function(){
            //     console.log("$(this) : "+$(this).prop('tagName'));
            //     resultText += $(this).text() + ", ";
            // });
            console.log($.trim(resultText));

            $searchEles.each(function(i,v){
                console.log(i + " : " + $(this).text());
            });

        })
    </script>
</head>
<body>
    <span>simple</span>
    <div class="simpletext1">jQuery</div>
    <div>basic</div>
    <p>example</p>
</body>
</html>​

 

 

as
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <script>
        $(function(){
            var arr = [
                {title: '다음', url: 'www.daum.net'},
                {title: '구글', url: 'www.google.com'}
            ];
            //배열은 자동으로 돌려서 실행됨
            $.each(arr, function(index, item){
                var result = '';
                result += index + ' : ' + item.title + ' , ' + item.url;
                console.log(result);
            });
            console.log("==== The End 1 ====");

            $.each($("#menu2 li"), function(i,o){
                console.log(i + ":", o);
            });
            console.log("==== The End 2 ====");
        });
    </script>
</head>
<body>
    <h1>탐색 선택자</h1>
    <ul id="menu1">
        <li>내용1-1</li>
        <li>내용1-2</li>
        <li>내용1-3</li>
    </ul>
    <ul id="menu2">
        <li>내용2-1</li>
        <li>내용2-2</li>
        <li>내용2-3</li>
    </ul>
</body>
</html>​

 

검색
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.js"></script>
    
</head>
<body>
    <form name="frm">
        <!-- <form action default="#"> form만 유일하게 네임명. 으로 접근가능 -->
        <input type="search" name="searchText" placeholder="검색어를 입력해주세요.">
        <input type="button" value="검색">
    </form>
    <ul>
        <li>김개똥</li>
        <li>김말자</li>
        <li>김말숙</li>
        <li>김개똥</li>
        <li>김말자</li>
        <li>김말숙</li>
        <li>김개똥</li>
        <li>김말자</li>
        <li>김말숙</li>
        <li>김개똥</li>
        <li>김말자</li>
        <li>김말숙</li>
    </ul>
    <script>
        let searchInput = frm.searchText;
        let str;
        let tempStr ='';
        $(searchInput).on('keydown',function(e){
            if(e.keyCode == 13){
                $("input[type=button]").click();
                // input type='search'에서 엔터하는 경우 form의 action실행이 안 되도록 막기
                e.preventDefault();
                // return false;
            }
        });
        
        $("input[type=button]").click(function(){
            str = searchInput.value;
            if(tempStr == '') tempStr = str;
            if(tempStr != str) $("ul > li").show();
            if(str == ''){
                $("ul > li").show();
                $(searchInput).focus();
            } else {
                $("ul > li").filter(function(i,o){
                    if(o.innerText.indexOf(str) < 0)
                    return true;
                    else return false;
                }).css("display","none")
            }
        });
    </script>
</body>
</html>​

 

;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <style>
        em {
            font-size: 20pt;
            line-height: 20pt;
            margin: 20px;
            color: blue;
        }
    </style>
    <script>
        var colorArr = ['yellow','red','orange'];
        $(document).ready(function(){
            $('p em').css('background-color', function(i){
                return colorArr[i];
            }).each(function(){
                $('.result1').append($(this).text()+" ");
            });

            $('div > em').css('background-color','pink').each(function(){
                $('.result2').append($(this).text()+" ");
            });
        });
    </script>
</head>
<body>
    <p><em>one</em><em>two</em><span><em>three</em></span></p>
    <div><em>four</em><span><em>five</em></span><em>six</em></div><hr>
    <div>
        <span>ancestor descendant로 검색된 엘리먼트:</span>
        <span class="result1"></span>
    </div>
    <div>
        <span>parent &gt; child로 검색된 엘리먼트:</span>
        <span class="result2"></span>
    </div>

</body>
</html>
join
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <script>
        $(function(){
            var result = new Array();
            var result2 = new Array();

            console.log('$("b").parents(): ', $("b").parents());
            $("b").parents().each(function(i){
                // result[i] = this.tagName;
                result[i] = $(this).prop('tagName');
            });

            // reverse() : 배열의 순서를 역순으로 가져오기

            // join("구분 문자열")함수 : 배열 요소값을 '구분 문자열'로 연결하여 문자열 값으로 반환.
            // 인수값이 있을 경우 기본적으로 '구분 문자열'로 추가됨.
            // 연결값이 없을 경우(예:마지막 연결값", ") '구분 문자열' 적용되지 않음.

            // result => [span, p, div, body, html]
            $("b").append(result.join(", "));

            // result.reverse() = > ['HTML', 'BODY', 'DIV', 'P', 'SPAN']
            // $("b").append(result.reverse().join(", "));
            
            $("em").parent().each(function(i, o){
                result2[i] = this.tagName;
            });
            $("em").append(result2.join(", "));

        });
    </script>
</head>
<body>
    <div>
        <!-- span < p < div < body < html -->
        <p><span><b>부모 엘리먼트 모두 검색: </b></span></p>
    </div>
    <div>
        <p><span><em>부모 엘리먼트 검색: </em></span></p>
    </div>
</body>
</html>​

 

 

$.map()
$.grep()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <script>
        $(function(){
            /*
            형식: $.map(배열객체, 콜백함수);
            - 해당 배열객체에서 값을 받아 콜백함수를 통해 반환받은 값으로 새로운 배열을 만든다.
            콜백함수(callback) : 매개변수로 함수를 전달하는 것을 말하며, 전달받은 함수를 함수의 내부에서 실행시킨다.
            */

            var arr1 = $.map([5,7,2], function(n){
                return n + 4;
            });
            document.write("arr1배열: " + arr1);
            document.write("<br>==== first End ==== <br><br>");
            //         0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
            var arr2 =[1,9,3,8,6,1,5,9,4,7, 3, 8, 6, 9, 1];

            // 형식: $.grep(배열객체, function(요소, 인덱스){return Boolean값;});
            // $.grep() 함수는 배열 요소를 조건에 따라 필터링하여 제거한다.
            // 이 조건은 함수로 구성되고 배열의 요소와 인덱스를 인자로 갖는다.
            // 즉, 특정 로직에 의해 true가 되는 결과들만 반환됨.
            var arr3 = jQuery.grep(arr2, function(n, i){
                return (n > 5 && i > 4); //9, 7, 8, 6, 9
            });
            document.write("arr3배열: " + arr3);
            
            document.write("<br>==== Second End ====");
        });
    </script>
</head>
<body>
    
</body>
</html>​
728x90
반응형

'[JS]' 카테고리의 다른 글

animation fadeIn(), fadeOut(), fadeToggle()  (0) 2024.03.08
on  (0) 2024.03.07
prop(), attr(), map방식  (0) 2024.03.06
[jQuery] slice(), find(), filter(), remove(), replace(), empty()  (0) 2024.03.06
[JS] jQuery ㅇㅇㅇ  (0) 2024.03.06

+ Recent posts