JQuery

heyryu·2023년 2월 14일
0

JQuery 시작하기

  • jQuery 란?
    • HTML의 요소들을 조작하는, 편리한 Javascript를 미리 작성해둔 것. 라이브러리! 👉 Javascript로도 모든 기능(예 - 버튼 글씨 바꾸기 등)을 구현할 수는 있지만, 1) 코드가 복잡하고, 2) 브라우저 간 호환성 문제도 고려해야해서, jQuery라는 라이브러리가 등장하게 되었답니다.
  • jQuery와 Javascript - 코드 비교해보기 👉 jQuery는 Javascript와 다른 특별한 소프트웨어가 아니라 미리 작성된 Javascript 코드입니다. 전문 개발자들이 짜둔 코드를 잘 가져와서 사용하는 것임을 기억해주세요! (그렇게 때문에, 쓰기 전에 "임포트"를 해야합니다!) Javascript로 길고 복잡하게 써야 하는 것을
    document.getElementById("element").style.display = "none";

jQuery로 보다 직관적으로 쓸 수 있어요. 편리하죠? :-)

   $('#element').hide();

JQuery 다뤄보기

  • 4) jQuery 사용하기
    • 미리 작성된 Javascript 코드를 가져오는 것을 '임포트'라고 부릅니다.
      • [코드스니펫] jQuery CDN
             https://www.w3schools.com/jquery/jquery_get_started.asp
      👉 jQuery CDN 부분을 참고해서 임포트하기: [(링크)](https://www.w3schools.com/jquery/jquery_get_started.asp)
    • <head> 와 </head> 사이에 아래를 넣으면 끝! 👉 수업 자료를 잘 따라온 분이라면, 나홀로메모장 코드에 이미 다음과 같이 임포트 되어있을거예요. 다시한번 잘 살펴보세요!
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    • jQuery를 사용하는 방법 👉 css와 마찬가지로, jQuery를 쓸 때에도 "가리켜야" → 조작할 수 있습니다. 예) 특정 인풋박스의 값을 → 가져와줘! 예) 특정 div를 → 안보이게 해줘! css에서는 선택자로 class를 썼지요? jQuery에서는 id 값을 통해 특정 버튼/인풋박스/div/.. 등을 가리키게 됩니다. 백문이불여일견! 자주 쓰는 jQuery들을 함께 다뤄보면서 익혀보죠!
  • 5) 자주쓰는 jQuery들 다뤄보기
    • 들어가기 전에 - 모든 jQuery를 외워야 하나요? 👉 절대!! 아닙니다. 예를 들어 스크롤 움직임을 감지한다거나, 화면 사이즈를 안다거나, jQuery가 할 수 있는 일은 무척 많습니다. 그러니, 필요할 때에 필요한 기능을 구글링해서 쓰면 되는 거예요!
    1. input 박스의 값을 가져와보기

      <div class="posting-box">
          <div class="form-group">
              <label for="exampleInputEmail1">아티클 URL</label>
              <input id="post-url" type="email" class="form-control" aria-describedby="emailHelp"
                  placeholder="">
          </div>
          <div class="form-group">
              <label for="exampleInputPassword1">간단 코멘트</label>
              <input type="password" class="form-control" placeholder="">
          </div>
          <button type="submit" class="btn btn-primary">기사 저장</button>
      </div>
      // 크롬 개발자도구 콘솔창에서 쳐보기
      // id 값이 post-url인 곳을 가리키고, val()로 값을 가져온다.
      $('#post-url').val();
    1. div 보이기 / 숨기기

      <div class="posting-box" id="post-box">
          <div class="form-group">
              <label for="exampleInputEmail1">아티클 URL</label>
              <input id="post-url" type="email" class="form-control" aria-describedby="emailHelp"
                  placeholder="">
          </div>
          <div class="form-group">
              <label for="exampleInputPassword1">간단 코멘트</label>
              <input type="password" class="form-control" placeholder="">
          </div>
          <button type="submit" class="btn btn-primary">기사 저장</button>
      </div>
      // 크롬 개발자도구 콘솔창에 쳐보기
      // id 값이 post-box인 곳을 가리키고, hide()로 안보이게 한다.(=css의 display 값을 none으로 바꾼다)
      $('#post-box').hide();
      
      // show()로 보이게 한다.(=css의 display 값을 block으로 바꾼다)
      $('#post-box').show();
    1. css의 값 가져와보기 (우리는 display 속성 값을 가져와볼게요!)

      $('#post-box').hide();
      $('#post-box').css('display');
      
      $('#post-box').show();
      $('#post-box').css('display');
    1. 태그 내 텍스트 입력하기

      1) input box의 경우

      $('#post-url').val('여기에 텍스트를 입력하면!');

      2) 다른 것들 - 예) 버튼의 텍스트 바꾸기

      // 가리키고 싶은 버튼에 id 값을 준다음
      <button id="btn-posting-box" type="button" class="btn btn-primary">포스팅 박스 열기</button>
      $('#btn-posting-box').text('포스팅 박스 닫기');
    1. 태그 내 html 입력하기
    • <div> ~ </div> 내에,
      동적으로 html을 넣고 싶을 땐? (예를 들어, 포스팅되면 → 카드 추가)

      // 사이에 html을 넣고 싶은 태그에 id값을 준 다음
      <div id="cards-box" class="card-columns">
          <div class="card">
            <img class="card-img-top" src="https://www.fodors.com/wp-content/uploads/2018/10/4_UltimateRome_PiazzaNavona-975x650.jpg" alt="Card image cap">
            <div class="card-body">
              <a href="https://naver.com/" class="card-title">여기 기사 제목이 들어가죠</a>
              <p class="card-text">여기에 기사 내용이 들어가겠죠</p>
              <p class="card-text comment">여기엔 코멘트가 들어갑니다</p>
            </div>
          </div>
        </div>

      1) 버튼을 넣어보기

      let temp_html = '<button>나는 추가될 버튼이다!</button>';
      $('#cards-box').append(temp_html);

      2) 버튼 말고, 카드를 넣어보기

      // 주의: 홑따옴표(')가 아닌 backtick(`)으로 감싸야 합니다.
      // 숫자 1번 키 왼쪽의 버튼을 누르면 backtick(`)이 입력됩니다.
      // backtick을 사용하면 문자 중간에 Javascript 변수를 삽입할 수 있습니다.
      let img_url = 'https://www.eurail.com/content/dam/images/eurail/Italy%20OCP%20Promo%20Block.adaptive.767.1535627244182.jpg';
      let link_url = 'https://naver.com/';
      let title = '여기 기사 제목이 들어가죠';
      let desc = '기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...';
      let comment = '여기에 코멘트가 들어갑니다.';
      
      let temp_html = `<div class="card">
                          <img class="card-img-top"
                              src="${img_url}"
                              alt="Card image cap">
                          <div class="card-body">
                              <a href="${link_url}" class="card-title">${title}</a>
                              <p class="card-text">${desc}</p>
                              <p class="card-text comment">${comment}</p>
                          </div>
                      </div>`;
      $('#cards-box').append(temp_html);
  • 포스팅 박스 열기 버튼에 function을 달기
    <script>
    function openclose() {
    	// 여기에 jQuery를 이용해 코드를 짤 예정    
    }
    </script>
    
    // onclick 속성(attribute)을 추가합니다.
    <button onclick="openclose()" class="btn btn-primary btn-lg">포스팅박스 열기</button>
  • 클릭 해서 포스팅 박스를 여닫게 하기
    • 포스팅 박스에 id 값을 주기
      <div class="form-post" id="post-box">
          <div>
              <div class="form-group">
                  <label for="exampleFormControlInput1">아티클 URL</label>
                  <input class="form-control" placeholder="">
              </div>
              <div class="form-group">
                  <label for="exampleFormControlTextarea1">간단 코멘트</label>
                  <textarea class="form-control" rows="2"></textarea>
              </div>
              <button type="button" class="btn btn-primary">기사저장</button>
          </div>
      </div>
    • 포스팅 박스 제어하기
      function openclose() {
          // id 값 post-box의 display 값이 block 이면
          if ($('#post-box').css('display') == 'block') {
              // post-box를 가리고
              $('#post-box').hide();
          } else {
              // 아니면 post-box를 펴라
              $('#post-box').show();
          }
      }
    • posting-box를 시작부터 감춰두기 (css의 display:none 속성!) 👉 이런 것을, inline-style (인라인 스타일) 이라고 부릅니다. 여기저기 쓰면 복잡하겠지만, 이렇게 쓰면 직관적으로 "아 처음부터 안보이는 태그구나!"를 알 수 있겠죠! (물론, class주고, css에서 display:none 속성을 주는 것도 방법이구요!)
          <div class="form-post" id="post-box" style="display:none">
              <div>
                  <div class="form-group">
                      <label for="exampleFormControlInput1">아티클 URL</label>
                      <input class="form-control" placeholder="">
                  </div>
                  <div class="form-group">
                      <label for="exampleFormControlTextarea1">간단 코멘트</label>
                      <textarea class="form-control" rows="2"></textarea>
                  </div>
                  <button type="button" class="btn btn-primary">기사저장</button>
              </div>
          </div>
      
  • (4) '포스팅박스 열기' 버튼의 글씨 바꿔주기
    • 포스팅박스 열기 버튼에 id 값 주기
          <button id="btn-posting-box" onclick="openclose()" class="btn btn-primary btn-lg">포스팅박스 열기</a>
    • 버튼 텍스트를 바꿔주기
        function openclose() {
        // id 값 post-box의 display 값이 block 이면
        if ($('#post-box').css('display') == 'block') {
            // post-box를 가리고
            $('#post-box').hide();
                    // 가렸으니까 이제 열기로 바꿔두기
            $('#btn-posting-box').text('포스팅 박스 열기');
        } else {
            // 아니면 post-box를 펴라
            $('#post-box').show();
                    // 폈으니까 이제 닫기로 바꿔두기
            $('#btn-posting-box').text('포스팅 박스 닫기');
        }
      }
profile
못하면 열심히 하는 게 당연하니까💪 [Frontend/서비스기획]

0개의 댓글