[jQuery]

· 자바스크립트 라이브러리

- 자바스크립트를 사용하기 쉽게 포장해놓은 것이다.

- cross browser - 브라우저 종류 상관없이 자바스크립트를 지원하기 위한 목적이다.

- DOM을 쉽게 다루도록 포장해놓은 것이다.

- chane식 메소드 방식이다. (DOM객체(객체).함수.함수.함수)


· jQuery 사용 방법

1) cdm 방식

https://code.jquery.com/jquery-3.2.1.min.js

2) 설치 방식

http://jquery.com/download/

Download the compressed, production jQuery 3.2.1


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script>

        function $(sel) {

            domObj = document.querySelector(sel);

            return domObj;

        }


        function fn() {

            $('#mydiv').innerText="korea";

        }

    </script>

</head>

<body>

    <div id="mydiv">표시</div>

    <button onclick="fn()">확인</button>

</body>

</html>

 <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script>

        function $(sel) {

            domObj = document.querySelector(sel);

            domObj.text = function (txt) {

                this.innerText=txt;

            }

            return domObj;

        }


        function fn() {

            $('#mydiv').text('korea2');

        }

    </script>

</head>

<body>

    <div id="mydiv">표시</div>

    <button onclick="fn()">확인</button>

</body>

</html>


· jQuery 문장의 구조

- $('선택자').메소드

- $(객체).메소드

- $('태그').메소드


· jQuery cheat sheet

https://oscarotero.com/jquery/


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn(){

            $('#mydiv').text('korea');

            

            s=$('#mydiv').text();//id가 mydiv인 div의 값을 받아온다.

            alert(s);

            

            $('#mydiv').css('color', 'blue').text('하하하').css('background-color', 'yellow');

            //체인방식으로 여러가지 함수를 사용할 수 있다.


            $('#mydiv').css({'color':'red', 'background-color':'yellow'})

            //속성을 여러가지 주고 싶을 경우에는 JSON 형식으로!

        }

    </script>

</head>

<body>

    <div id="mydiv">표시</div>

    <button onclick="fn()">확인</button>

</body>

</html> 


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            $('*').css('color', 'red');

            $('div').css('color', 'red');

            $('.myp').text('korea');

            $('p, div').css('color', 'red');

            $('p.myp').css('color', 'red');

            $('div li').css('color', 'red');

            $('ul>li').text('korea');

        }

    </script>

</head>

<body>

    <h1>Title</h1>

    <h2 class="myp">hi1</h2>

    <p class="myp">hi2</p>

    <p>hi3</p>

    <div id="mydiv">test1</div>

    <div>test2</div>

    <div>

        <ul>

            <li>사과</li>

            <li>딸기</li>

            <li>포도</li>

            <li>수박</li>

        </ul>

    </div>

    <ul>

        <li>참외</li>

        <li>메론</li>

        <li>자두</li>

    </ul>

    <button onclick="fn()">check</button>

</body>

</html> 


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            $('#myli + li').css('color', 'red');//id가 myli의 오른쪽 옆 형제만

            $('#myli ~ li').css('color', 'red');//id가 myli의 오른쪽 형제 모두

            $('[src]').css('border', '2px solid red');//src 속성이 있는 것

            $('[src="image/a.jpg"]').css('border', '2px solid red');//src 속성이 image/a.jpg인 것

            $('[src*="jpg"]').css('border', '2px solid red');//src 속성에 jpg가 있는 것

            $('[src^="image"]').css('border', '2px solid red');//src 속성이 image로 시작하는 것

            $('[src$="jpg"]').css('border', '2px solid red');//src 속성이 jpg로 끝나는 것

            $('p[class]').css('color', 'red');//p태그에 class 속성이 있는 것

        }

    </script>

</head>

<body>

    <div class="mydiv">test1</div>

    <p class="mydiv">test2</p>

    <ul>

        <li id="myli">수박</li>

        <li>참외</li>

        <li>메론</li>

    </ul>

    <img src="image/a.jpg">

    <img src="image/b.jpg"><br>

<button onclick="fn()">button</button>

</body>

</html> 


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            $('li:even').css('color', 'red');

            $('li:odd').css('color', 'red');

            $('li:first').css('color', 'red');

            $('li:last').css('color', 'red');

            $('li:eq(8)').css('color', 'red');

            $('li:gt(2)').css('color', 'red');//inded2보다 큰 것->index3부터

            $('li:lt(3)').css('color', 'red');//index3보다 작은 것 ->index0~2

            $('li:not(:first)').css('color', 'red');//first가 아닌 것

            $('li:not(:eq(2))').css('color', 'red');//index2가 아닌 것

            $('li:contains("hello")').css('color', 'red');//li에 text가 hello인 것

            $('div:has(span)').css('color', 'red');//div태그에서 span태그를 가지고 있는 것

            $('li:nth-child(2n)').css('color', 'red');

        }

    </script>

</head>

<body>

    <div>test1</div>

    <div><span>test2</span></div>

    <ul>

        <li>fruit0</li>

        <li>fruit1</li>

        <li>hello</li>

        <li>fruit3</li>

        <li>fruit4</li>

        <li>fruit5</li>

        <li>fruit6</li>

        <li>fruit7</li>

        <li>fruit8</li>

        <li>fruit9</li>

    </ul>

    <button onclick="fn()">check</button>


</body>

</html> 


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            num1=$('#num1').val();//id num1의 값 받아오기

            num2=$('#num2').val();//id num2의 값 받아오기

            result = Number(num1)+ Number(num2);//문자이기때문에 숫자로 변환 후 덧셈

            $('#mya').text(result);//값 입력할 때 text

        }

    </script>

</head>

<body>

    숫자1 : <input id="num1" type="number"><br>

    숫자2 : <input id="num2" type="number"><br>

    결과 : <a id="mya"></a><br>

    <button onclick="fn()">계산</button>

</body>

</html> 


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        arr=[10,20,30,40];

        arr.forEach(function (v, i) {

            console.log(v, i);

        })


        $.each(arr,function (i, v) {

            console.log(i, v);

        })


        j={'name':'홍길동', 'age':20}

        $.each(j, function (i, v) {

        console.log(i, v);

        })


        function fn() {

            liarr = document.querySelectorAll('li')

             for(n=0; n<liarr.length; n++){

             console.log(liarr[n].innerText);

             }


            $('li').each(function (i, v) {

                console.log(i, v);

                console.log(v.innerText);

                console.log($(v). text());

                console.log($(this).text());

            })

        }

    </script>

</head>

<body>

    <ul>

        <li>test1</li>

        <li>test2</li>

        <li>test3</li>

        <li>test4</li>

    </ul>

<button onclick="fn()">button</button>

</body>

</html> 


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn1() {

            a = $('[name="hobby"]:checked').val();

            $('#mydiv1').text(a);

        }



        function fn2() {

            var s=""

            s = $('[type="checkbox"]:checked').each(function (i, v) {

                //console.log($(v).val());

                s += $(v).val();

                $('#mydiv2').text(s);

            });

        }


        function fn3() {

            b = $('[name="job"]>option:selected').val();

            $('#mydiv3').text(b);

        }



    </script>

</head>

<body>

    hobby1 : <a id="mydiv1"></a>

    <fieldset>

        수영 : <input type="radio" value="수영" name="hobby"><br>

        낚시 : <input type="radio" value="낚시" name="hobby"><br>

        영화 : <input type="radio" value="영화" name="hobby"><br>

    </fieldset>

    <button onclick="fn1()">button1</button><br><br>



    hobby2 : <a id="mydiv2"></a>

    <fieldset>

        수영 : <input type="checkbox" value="수영"><br>

        낚시 : <input type="checkbox" value="낚시"><br>

        영화 : <input type="checkbox" value="영화"><br>

    </fieldset>

    <button onclick="fn2()">button2</button><br><br>



    company : <a id="mydiv3"></a><br>

    <select name="job">

        <option value="회사1">회사1</option>

        <option value="회사2">회사2</option>

        <option value="회사3">회사3</option>

    </select>

    <button onclick="fn3()">button3</button><br><br>

</body>

</html> 


 <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            $('img').attr('src', 'image/b.jpg');

            s = $('img').attr('src');//img태그의 src가 어떤 값인지 궁금할 때

            alert(s);

            s = $('#mycheck').attr('checked');

           alert(s)

           $('#mycheck').prop('checked', false);//버튼누르면 체크됨

        }

    </script>

</head>

<body>

    <img src="image/a.jpg"><br>

    <input id="mycheck" type="checkbox"><br>

    <button onclick="fn()">OK</button>

</body>

</html>


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            $('#mydiv1').html('<h1>korea</h1>');//id mydiv1 내용을 korea로 변경

            /*추가*/

            $('#mydiv1').append('<h1>korea</h1>');//버튼 누를 때마다 id mydiv1 다음에 korea 추가

                //$('<h1>korea</h1>').appendTo('#mydiv1');

                /*h1 = document.createElement('h1');

                h1.innerText='korea';

                mydiv1.appendChild(h1);*/

            $('#mydiv1').prepend('<h1>korea</h1>');//버튼 누를 때마다 id mydiv1 앞쪽에 korea 추가


            /*삭제*/

            $('<h1>korea</h1>').prependTo('#mydiv1');

            $('#mydiv2').remove();//id mydiv2 DOM 삭제

            $('div').remove();//div 전체 삭제

            $('#mydiv2').empty();//id mydiv2의 내용 삭제

            $('#mydiv2').hide();//style="display:none;" 다시 나타나게 하려면  $('#mydiv2').show();

        }

    </script>

</head>

<body>

    <button onclick="fn()">button</button>

    <div id="mydiv1">표시1</div>

    <div id="mydiv2">표시2</div>

    <div id="mydiv3">표시3</div>

</body>

</html>


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            name = $('[type = "text"]').val();

            age = $('[type = "number"]').val();


            if(name !="" && age != "") {//입력칸 공백 아닐 경우에만 테이블에 추가

                $('#mytable').append('<tr><td>' + name + '</td><td>' + age + '</td></tr>')

            }else{

                alert("입력해주세요.");

            }

            $('[type = "text"]').val("");

            $('[type = "number"]').val("");

        }


        function rfn() {

            $('tr:gt(0)').remove();//index 0보다 큰 row 삭제

        }

    </script>

</head>

<body>

    이름 : <input type="text"><br>

    나이 : <input type="number"><br>

    <button onclick="fn()">추가</button>

    <button onclick="rfn()">삭제</button><br><br>


    <table border="1" id="mytable">

        <tr>

            <th>이름</th>

            <th>나이</th>

        </tr>

    </table>

</body>

</html>


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>


    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            $('li:first').css('color', 'red');

            //$('li').first().css('color', 'red');


            $('li:eq(1)').css('color', 'red');

            //$('li').eq(1).css('color', 'red');


            $('div.mydiv').css('color', 'red');

            //$('div').filter('.mydiv').css('color', 'red');


            $('div:not(.mydiv)').css('color', 'red')

            //$('div').not('.mydiv').css('color', 'red')

        }

    </script>

</head>

<body>

    <div>test1</div>

    <div class="mydiv">test2</div>

    <p class="mydiv">test3</p>

    <ul>

        <li>항목0</li>

        <li>항목1</li>

        <li>항목2</li>

        <li>항목3</li>

        <li>항목4</li>

        <li>항목5</li>

        <li>항목6</li>

        <li>항목7</li>

    </ul>

    <button onclick="fn()">확인</button>

</body>

</html>


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.2.1.min.js"></script>

    <script>

        function fn() {

            /*id mydiv의 자식인 p*/

            $('#mydiv > p').css('color', 'red');

            //$('#mydiv').children('p').css('color', 'red');


            /*id mydiv의 자식+후손인 p*/

            $('#mydiv p').css('color', 'red');

            //$('#mydiv').find('p').css('color', 'red');


            /*id myp의 형제들*/

            $('#myp').next().css('color', 'red');//id myp의 다음에 있는 것

            $('#myp').next().next().css('color', 'red');//id myp의 다음다음에 있는 것

            $('#myp').nextAll().css('color','red');//id myp의 다음에 있는 전부

            $('#myp').prev().css('color', 'red');//id myp의 이전에 있는 것

    

            /*id myp의 부모*/

            $('#myp').parent().css('color', 'red');

        }

    </script>

</head>

<body>

    <div id="mydiv">

        test1

        <div>

            <p>KOREA</p>

        </div>

        <p>check1</p>

        <p id="myp">check2</p>

        <p>check3</p>

        <p>check4</p>

    </div>

    <p>test2</p>

    <button onclick="fn()">OK</button>


</body>

</html> 


'SK고용디딤돌' 카테고리의 다른 글

직무교육 17일차(jQuery)  (0) 2017.08.04
직무교육 16일차(jQuery)  (0) 2017.08.03
직무교육 14일차(HTML5 API)  (0) 2017.08.01
직무교육 13일차(HTML5 API)  (0) 2017.07.26
직무교육 12일차(DB연동)  (1) 2017.07.25

+ Recent posts