[jquery] 각종 함수들

들어가기에 앞서

라이브러리 의미 : 자주 사용되는 함수들의 모임(묶음)


jquery 배경 :
1) 웹브라우저(익스플러워, 크롬, 사파리 등) 간에 js 문법잘 동작을 안했음
(크로스 브라우저 문제 => jquery 등장)현재는 바닐라 js 가능
2) 바닐라 js 보다 코딩이 짧고 사용이 쉬움


단점 :
용량이 크고 , 성능이 떨어짐
jquery : 함수를 이용해서 DOM 조작
$(function() {jquery실행문} : html 위쪽에 넣어도 실행된다. => html 태그 보다 뒤 늦게 실행을 시켜주는 구문


- jquery cdn : 인터넷 주소로 자동 다운로드 입력 필수
<script src="
http://code.jquery.com/jquery-3.1.0.js
"></script>

- 사용법 :
$(function() {
$(css선택자).함수("속성명", "값");
}); 

 

jq selecter

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>jquery 라이브러리 실행해보기</title>
  </head>

  <body>
    <h1 id="title">제목</h1>

    <!-- jquery cdn : 인터넷 주소로 자동 다운로드 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
    <script src="./js/01_jq_selecter.js"></script>
  </body>
</html>

js

// TODO : jquery 라이브러리 맛보기

// TODO 라이브러리 의미 : 자주 사용되는 함수들의 모임(묶음)

// TODO jquery 배경 :
// 1) 웹브라우저(익스플러워, 크롬, 사파리 등) 간에 js 문법
// 잘 동작을 안했음(크로스 브라우저 문제 => jquery 등장)
// 현재는 바닐라 js 가능
// 2) 바닐라 js 보다 코딩이 짧고 사용이 쉬움
// 단점 :
// 용량이 크고 , 성능이 떨어짐
// jquery : 함수를 이용해서 DOM 조작
// $(function() {jquery실행문} : html 위쪽에 넣어도 실행된다.
//  => html 태그 보다 뒤 늦게 실행을 시켜주는 구문

// 사용법 :
// $(function() {
//    $(css선택자).함수("속성명", "값");
// });

$(function () {
  $("#title").css("color", "skyblue");
});

결과

Screenshot_25.png

jq selecter2

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>전체 선택자 태그를 사용하여 외곽선 디자인 조작</title>
  </head>

  <body>
    <h1>제이쿼리</h1>
    <h2 id="tit">선택자</h2>
    <h3>직접선택자</h3>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
   
    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // * : 전체 선택자
        // 전체 태그를 선택해서 외곽선을 1px solid blue 해라
        // jquery 함수 : $("*").css("속성", "값"); // 디자인 조작
        $("*").css("border", "1px solid blue");
      });
    </script>
  </body>
</html>

결과

Screenshot_26.png

jq css

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>함수 동시 적용 메소드(함수)체이닝</title>
  </head>

  <body>
    <h1>제이쿼리</h1>
    <h2 id="tit">선택자</h2>
    <h3>직접선택자</h3>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
   
    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // jquery 작성
        // 예제 : 배경색:#ff0, border:2px solid black
        // TODO: 메소드(함수) 체이닝
        // 사용법 : $(css선택자).함수().함수()...
        $("#tit")
          .css("background-color", "#ff0")
          .css("border", "2px solid black");
      });
    </script>
  </body>
</html>

결과

Screenshot_27.png

 

jq css2

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>속성 동시적용 체이닝 예제1</title>
  </head>

  <body>
    <!-- 연습문제 -->
    <!-- 1) id tit 선택해서  -->
    <!-- 2) background-color : #ff0 -->
    <!-- 3) border : 2px dashed black -->

    <h1>제이쿼리</h1>
    <h2 id="tit">선택자</h2>
    <h3>직접선택자</h3>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function() {
        $("#tit")
        .css("background-color","#ff0")
        .css("border","2px dashed black")
      })
    </script>
  </body>
</html>

결과

Screenshot_28.png

jq css3

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>
  </head>
  <body>
    <!-- 연습문제 : h2 태그를 선택해서 디자인 적용하세요
                     background-color 속성 -> skyblue
                     border 속성 -> 2px dashed black
     -->
    <!-- 선택자 : $("h2") -->
    <h1>제이쿼리</h1>
    <h2>선택자</h2>
    <h3>직접선택자</h3>

    <!-- jquery cdn -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
    <script>
      $(function () {
        $("h2")
          .css("background-color", "skyblue")
          .css("border", "2px dashed black");
      });
    </script>
  </body>
</html>

결과

Screenshot_29.png

jq css4

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>선택자 2개 속성 동시적용 체이닝</title>
  </head>

  <body>
    <h1>제이쿼리</h1>
    <h2>선택자</h2>
    <h3 id="tit3">직접선택자</h3>
    <h3>인접선택자</h3>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // 코딩 : 예제 : 2개를 선택해서 디자인 적용하기
        // $(선택자, 선택자2).함수()
        $("h1, #tit3")
          .css("background-color", "#0ff")
          .css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_30.png

jq css5

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>
</head>
<body>
    <h1 class="tit">제이쿼리</h1>
    <h1>선택자</h1>
    <h3 class="tit">직접선택자</h3>

    <!-- jquery cdn -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
    <script>
        // 일치 선택자 :
        $("h1.tit").css("background-color", "#0ff")
                .css("border", "2px dashed #f00");
    </script>
</body>
</html>

결과

Screenshot_31.png

exam jq css 1

Screenshot_32.png

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>
</head>
<body>
    <!-- 연습문제 : #wrap 바로 밑에 h1 태그만 선택해서 디자인 적용
                background-color: yellow
                border: 2px dashed #f00
                #wrap > h1(자식 선택자)
     -->
     <!-- 힌트 : $("#wrap > h1") -->
    <div id="wrap">
        <h1>인접 관계 선택자</h1>
        <p>내용1</p>
        <section>
            <h1>하위 요소 선택자</h1>
            <p>내용2</p>
        </section>
    </div>

    <!-- jquery cdn -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
    <script>
        $(function(){
            // 코딩
            $("#wrap > h1").css("background-color", "yellow")
                        .css("border", "2px dashed #f00");
        })
    </script>
</body>
</html>

jq parent

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>인접 관계(부모 태그) 체이닝</title>
  </head>

  <body>
    <h1>인접 관계 선택자</h1>
    <ul id="wrap">
      <li>
        리스트1
        <!-- 자식 목록 -->
        <ul>
          <li id="list_1">리스트1-1</li>
          <li>리스트1-2</li>
        </ul>
      </li>
      <li>리스트2</li>
      <li>리스트3</li>
    </ul>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      // 인접 관계 선택자 :
      $(function () {
        // 코딩 : #list_1 에서 부모 태그 선택하기
        // 사용법 : $(css선택자).parent().함수()
        $("#list_1").parent().css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_33.png

jq children

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>인접 관계(자식 태그) 체이닝</title>
  </head>

  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <section>
        <h1>하위 요소 선택자</h1>
        <p>내용2</p>
      </section>
    </div>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // #wrap > section 아래 자식 태그들 선택하기
        $("#wrap > section")
          .children()
          .css("background-color", "yellow")
          .css("border", "2px solid #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_34.png

jq prev next

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>선택태그 앞/뒤에 태그 체이닝</title>
  </head>

  <body>
    <div>
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p class="txt">내용2</p>
      <p>내용3</p>
      <p>내용4</p>
    </div>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // .txt 선택태그 앞/뒤에 태그 선택하기
        // 함수 : 함수()
        // 사용법 : $("css선택자").prev().함수(); // 앞에 태그 선택
        $(".txt").prev().css("background-color", "#0ff");

        // 사용법 : $("css선택자").next().함수(); // 뒤에 태그 선택
        $(".txt").next().css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_35.png

jq prevAll nextAll

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>선택태그 앞/뒤에 모든 태그 체이닝</title>
  </head>

  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p class="txt">내용2</p>
      <p>내용3</p>
      <p>내용4</p>
    </div>


    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // 앞/뒤 의 모든 태그 선택하기
        // 사용법 : $(css선택자).prevAll().함수(); // 앞의 모든 태그 선택
        $(".txt")
          .prevAll()
          .css("background-color", "#0ff")
          .css("border", "2px dashed #f00");

        // 사용법 : $(css선택자).nextAll().함수(); // 뒤의 모든 태그 선택
        $(".txt")
          .nextAll()
          .css("background-color", "#ff0")
          .css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_36.png

jq siblings

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>
  </head>
  <body>
    <div id="wrap">
      <h1>인접 관계 선택자</h1>
      <p>내용1</p>
      <p class="txt">내용2</p>
      <p>내용3</p>
      <p>내용4</p>
    </div>

    <!-- jquery cdn -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>
    <script>
        $(function(){
            // 코딩
            // 예제 : .txt 의 형제 태그 선택해서 디자인 적용
            // 사용법 : $("css선택자").siblings().함수();
            $(".txt").siblings()
                    .css("background-color", "#0ff")
                    .css("border", "2px dashed #f00");
        })
    </script>
  </body>
</html>

결과

Screenshot_37.png

jq prevUntil

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>선택태그부터 대상태그 디자인 적용 2가지</title>
  </head>

  <body>
    <div id="wrap">
      <h1 class="title">선택자</h1>
      <p>내용1</p>
      <p>내용2</p>
      <p class="txt3">내용3</p>
      <p>내용4</p>
      <p>내용5</p>
      <p class="txt6">내용6</p>
    </div>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      // //선택태그(.txt3) 부터 대상태그(.title)앞까지만 선택하기(앞)
      // // 사용법 : $(기준선택자).prevUntil("대상선택자").함수();
      $(function () {
        $(".txt3")
          .prevUntil(".title")
          .css("background-color", "#0ff")
          .css("border", "2px dashed #f00");
      });

      // 선택태그(.txt3) 부터 대상태그(.txt6) 사이 선택하기(뒤)
      // 사용법 : $(기준선택자).nextUntil("대상선택자").함수();
      $(function () {
        $(".txt3")
          .nextUntil(".txt6")
          .css("background-color", "#0ff")
          .css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_38.png

jq parents

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>선택태그 위의 부모들 모두 선택 디자인 적용</title>
  </head>

  <body>
    <h1 class="title">선택자</h1>
    <section>
        <div>
            <!-- 선택 -->
            <p class="txt1">내용</p>
            <p class="txt2">내용</p>
        </div>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // .txt1 의 선택태그 위의 부모를 모두 포함 선택
        // 사용법 : $("css선택자").parents().함수()
        $(".txt1").parents().css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_39.png

jq closet

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>부모태그들 중 가장 가까이 있는 태그 선택 디자인 적용</title>
  </head>

  <body>
    <h1 class="title">선택자</h1>
    <div>
      <div>
        <p class="txt1">내용</p>
      </div>
    </div>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // 선택태그(.txt1)에서 부모태그들 중 가장 가까이 있는 태그 선택
        // 사용법 : $("css선택자").closest("부모태그").함수();
        $(".txt1").closest("div").css("border", "2px dashed #f00");
      });
    </script>
  </body>
</html>

결과

Screenshot_40.png

exam jq first last

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>탐색 선택 디자인 적용</title>
  </head>

  <body>
    <!-- 연습문제 -->
    <!-- 1) #menu li 중에서 1st 것만 선택해서 -->
    <!-- css  : background-color 속성 -> #ff0 -->
    <!-- 2) #menu li 목록 중 마지막 것을 선택 -->
    <!-- css  : background-color 속성 -> #0ff -->

    <!-- 힌트 : css 사용법 -> li:first , li:last -->
    <h1>탐색 선택자</h1>
    <ul id="menu">
      <li>내용1</li>
      <li>내용2</li>
      <li>내용3</li>
      <li>내용4</li>
    </ul>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function() {
        $("#menu li:first").css("background-color","#ff0")
        $("#menu li:last").css("background-color","#0ff")
      })
    </script>
  </body>
</html>

결과

Screenshot_41.png

jq odd even

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>탐색(짝수,홀수) 선택 디자인 적용</title>
  </head>

  <body>
    <!-- 연습문제 -->
    <!-- #menu li 목록 중 짝수를 선택 -->
    <!-- css : background-color -> #ff0 -->
    <!-- #menu li 목록 중 홀수를 선택 -->
    <!-- css : background-color -> #0ff -->

    <!-- 힌트 : css 가상선택자 : li:even (짝수) , li:odd (홀수) -->
    <h1>탐색 선택자</h1>
    <ul id="menu">
      <li>내용1</li>
      <li>내용2</li>
      <li>내용3</li>
      <li>내용4</li>
    </ul>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // 코딩 : ;(세미콜론) : 명령어의(문장) 끝을 의미

        // 짝수 선택
        $("#menu li:even").css("background-color", "#ff0");

        // 홀수 선택
        $("#menu li:odd").css("background-color", "#0ff");
      });
    </script>
  </body>
</html>

결과

Screenshot_42.png

jq eq

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>탐색(eq) 선택 디자인 적용</title>
  </head>

  <body>
    <h1>탐색 선택자</h1>
    <ul id="menu">
      <li>내용1</li>
      <li>내용2</li>
      <li>내용3</li>
      <li>내용4</li>
      <li>내용5</li>
    </ul>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // 사용법 : $(css선택자).eq(인덱스번호).함수();
        // 인덱스번호(배열) : 0 ~ n 까지
        // 인덱스번호에 해당하는 태그를 선택함
        $("#menu > li").eq(2).css("background-color", "#ff0");
        // $("#menu li").eq(2).css("background-color", "#ff0");
        // $("li").eq(2).css("background-color", "#ff0");
        // 셋 다 같은 결과
      });
    </script>
  </body>
</html>

결과

Screenshot_43.png

jq slice

html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>탐색(slice) 선택 디자인 적용</title>
  </head>

  <body>
    <h1>탐색 선택자</h1>
    <ul id="menu">
      <li>내용1</li>
      <li>내용2</li>
      <li>내용3</li>
      <li>내용4</li>
    </ul>

    <!-- jquery cdn 필수 -->
    <script src="http://code.jquery.com/jquery-3.1.0.js"></script>

    <!-- 간단한 코드라 js파일없이 아래에서 script 작성 -->
    <script>
      $(function () {
        // #menu li 선택해서 1,2 인덱스번호만 선택하기
        // 사용법 : $("css선택자").slice(시작인덱스번호, 끝인덱스번호)
        // 시작인덱스번호 ~ 끝인덱스번호-1 까지 선택됨
        $("#menu li").slice(1, 3).css("background-color", "yellow");
      });
    </script>
  </body>
</html>

결과

Screenshot_44.png