티스토리 뷰
🌞jQuery 란?
- HTML의 요소들을 조작하는 편리한 Javascript를 미리 작성해둔 것이다. (JS 라이브러리)
- 즉, 미리 작성된 JS코드이다. 다른 사람이 짜둔 코드를 가져와서 사용하는 것이기 때문에 쓰기 전에 import 를 해야 합니다.
- jQuery를 쓰면 javascript보다 더 직관적이고 간편하게 쓸 수 있다.
▶JS와 jQuery 코드 비교
//JS 코드
document.getElementById('element').style.display = 'none';
//jQuery ver 좀 더 직관적인 코드
$('#element').hide();
🌞jQuery 사용방법
직접 파일을 가져와서 쓰는 방법도 있지만 google CDN을 통해서 코드 임포트 후 사용한다.
//google CDN
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
🌞jQuery 사용하기
주의❗ jQuery가 하는 일은 많이 있습니다. 스크롤의 움직임을 감지한다거나, 화면 사이즈를 안다거나 등등
그렇기 때문에 모든 것을 암기하는 것이 아니라 필요에 따라 찾아서 사용하면 됩니다.
🌞자주 사용하는 기능 배워보기
jQuery의 경우, 주로 CSS selector 클래스(.)말고 아이디(#)를 이용해서 HTML 엘레멘트를 가져온다.
1. input 박스의 값을 가져오기
- 우선 내가 가져오고자 하는 input 박스에 아이디를 줍니다. (아래 예시에서는 url)
- 보통 아래와 같이 제이쿼리 메소드의 입력값을 주면 값을 update하고 아무 값도 전달하지 않으면 해당 내용에 대한 정보를 리턴해줍니다.
2. div 보이기 / 숨기기
- 제이쿼리가 매우 직관적인 코드라는 점을 아주 잘 보여주는 예시입니다.
- 제이쿼리객체.hide()를 하면 화면에서 가려주고 다시 보여주려면 show()를 하면 됩니다.
3. 태그 내에 html 입력하기
- append()메소드를 사용하면 기존 요소의 내부에 새로운 요소나 콘텐츠를 추가할 수 있습니다.
(이 외의 다른 메소드는 해당 주소를 참고:https://araikuma.tistory.com/609)
- append(htmlString)메소드: 선택된 요소의 마지막에 새로운 HTML요소나 콘텐츠를 추가
- 주의할 점은 자식요소가 아니라 부모요소(맥락상 자식요소를 감싸고 있는 컨테이너)에 id값을 주고 거기에 append메소드를 통해 자식요소의 마지막에 html요소를 추가하는 것입니다.
let temp_html = `<div class="col">
<div class="card">
<img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">여기에 제목이 들어갑니다.</h5>
<p class="card-text">여기에 내용이 들어갑니다.</p>
<p>⭐⭐⭐</p>
<p class="mycomment">여기에 코멘트가 들어갑니다.</p>
</div>
</div>
</div>`;
$('#card-box').append(temp_html);
-> `<button>버튼</button>` 처럼 백틱 안에 html요소를 담아서 card-box라는 요소의 마지막에 내가 만든 html 요소를 추가하는 기능을 한다. 즉, append(내가만든html요소) 를 통해 얼마든 지 새로운 컨텐츠를 추가해줄 수 있다는 뜻이다.
▶append 활용하기 (내가 만든 html요소의 내용을 수정해서 추가하기)
let mytitle = '감자공주';
let temp_html = `<div class="col">
<div class="card">
<img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">${mytitle}</h5> //여기에 내가 만든 타이틀을 넣어줬음
<p class="card-text">여기에 내용이 들어갑니다.</p>
<p>⭐⭐⭐</p>
<p class="mycomment">여기에 코멘트가 들어갑니다.</p>
</div>
</div>
</div>`;
$('#card-box').append(temp_html); // 그 다음 감자공주가 들어간 카드를 마지막 요소로 넣어줬다.
결과물
-감자공주라는 타이틀을 가진 html요소가 마지막에 추가됐다.
🌞jQuery 활용하기
1. 빈칸 체크
let val = $('#input-q1').val();
if(val == ''){
alert('입력해주세요!');
}else{
alert(val);
}
2. 이메일 판별하기
- 이메일 형식이 아닐 경우, 알림 메세지
- 이메일이 형식이 맞을 경우, 도메인을 알림창에 표시
- JS includes()메소드: 인수로 전달받은 값이 존재하면 t, 아니라면 f 리턴 (주의: 대,소문자를 구별한다)
let input = $('#input-q2').val();
if(input.includes('@')){
let domain = input.split('@')[1].split('.')[0];
alert(domain);
}else{
alert('이메일이 아닙니다!');
}
3. 이름을 입력하면 리스트에 추가해주기 (HTML 붙이기/ 지우기)
//HTML 붙이기
let name = $('#input-q3').val();
let temp_html = `<li>${name}</li>`;
$('#names-q3').append(temp_html);
//HTML 전부 지우기
$('#names-q3').empty();
- jQueryObj.empty()의 경우, DOM의 모든 자식요소를 제거한다. 즉 부모요소에 .empty()를 하게되면 자식요소들이 전부 사라진다.
'Frontend > jQuery' 카테고리의 다른 글
[생활코딩][웹브라우저JS] - jQuery Ajax (0) | 2022.02.23 |
---|---|
[생활코딩][웹브라우저JS] - jQuery 이벤트 관련 API (0) | 2022.02.16 |
[생활코딩][웹브라우저JS]- jQuery의 node 제어 API (0) | 2022.02.08 |
[생활코딩][웹브라우저JS]- jQuery 속성(attr) 제어 API, jQuery 조회 범위 제한 (0) | 2022.02.05 |
[생활코딩][웹브라우저JS]- jQuery 객체, jQuery API (0) | 2022.02.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- aspect-ratio
- nvm경로 오류
- text input pattern
- grid flex
- 항해99프론트후기
- 항해99추천비추천
- 틸드와 캐럿
- 원티드 3월 프론트엔드 챌린지
- 부트캠프항해
- tilde caret
- 타입스크립트 DT
- && 셸 명령어
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- 원티드 FE 프리온보딩 챌린지
- 형제 요소 선택자
- ~ ^
- 원티드 프리온보딩 FE 챌린지
- 프리온보딩 프론트엔드 챌린지 3월
- 프리렌더링확인법
- 항해99프론트
- is()
- 타입스크립트 장점
- Prittier
- D 플래그
- reactAPI
- float 레이아웃
- getStaticPaths
- nvm 설치순서
- fs모듈 넥스트
- getServerSideProps
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함