HTML의 요소들을 조작하는, 편리한 Javascript를 미리 작성해둔 것. 라이브러리!
Javascript로도 모든 기능(예 - 버튼 글씨 바꾸기 등)을 구현할 수는 있지만,
1) 코드 복잡, 2) 브라우저 간 호환성 문제 고려 => jQuery라는 라이브러리가 등장.
jQuery는 Javascript와 다른 특별한 소프트웨어가 아니라 미리 작성된 Javascript 코드.
전문 개발자들이 짜둔 코드를 잘 가져와서 사용하는 것임을 기억! (그렇게 때문에, 쓰기 전에 import를 해야함)
document.getElementById("element").style.display = "none";
$('#element').hide();
jQuery CDN 부분을 참고해서 import - 링크텍스트
<head>
와</head>
사이에 아래를 넣으면 끝!<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
잠깐!! 모든 jQuery를 외워야 하나? =>절대 No!! ❌!!
예를 들어 스크롤 움직임을 감지한다거나, 화면 사이즈를 안다거나, jQuery가 할 수 있는 일은 무척 많다.
그러니, 필요할 때에 필요한 기능을 구글링해서 쓰기!
1) 값 가져오기
$('#post-url').val();
2) 보이기 / 숨기기
$('#//id name //').hide();
$('#//id name //').show();
3) css의 값 가져오기
$('#//id name //').css('//가져올 값//');
4) 태그 내 텍스트 입력하기
$('#//id name //').val('여기에 텍스트를 입력하면!');
// 가리키고 싶은 버튼에 id 값을 준다음
<button id="btn-posting-box" type="button" class="btn btn-primary">포스팅 박스 열기</button>
$('#btn-posting-box').text('포스팅 박스 닫기');
<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>
let temp_html = '<button>나는 추가될 버튼이다!</button>';
$('#cards-box').append(temp_html);
// 주의: 홑따옴표(')가 아닌 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);
참고! Ajax는 jQuery를 import한 페이지에서만 동작 가능.
즉, http://google.com/ 과 같은 화면에서 개발자도구를 열면, jQuery가 임포트 되어있지 않기 때문에 아래와 같은 error가 뜸.
Uncaught TypeError: $.ajax is not a function
=> ajax라는 게 없다는 뜻 !
$.ajax({
type: "GET",
url: "여기에URL을입력",
data: {},
success: function(response){
console.log(response)
}
})
> 코드 해설
$.ajax({
type: "GET", // GET 방식으로 요청한다.
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
data: {}, // 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두기)
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성
}
})
📍
GET 요청은, url뒤에 아래와 같이 붙여서 데이터를 가져감.
http://naver.com?param=value¶m2=value2
POST 요청은, data : {} 에 넣어서 데이터를 가져감.
data: { param: 'value', param2: 'value2' },
success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
console.log(response)
}