JQuery
: HTML의 요소들을 조작하는 편리한 Javascript를 미리 작성해둔 라이브러리
모든 jQuery를 외울 필요는 없고, 필요할 때에 필요한 기능을 구글링하면 된다.
* 부트스트랩 : 미리 짜여진 CSS코드
어떤 값을 가져오기 위해 어떠한 대상을 지칭할 필요가 있음.
ex) CSS는 class를 이용해 지칭했다.
ex) jQuery에서는 id 값을 통해 특정 값을 가리킴.
$('#url').val('입력을 하고 싶다')
#url : url이라는 id에 jQuery를 적용.
url 창에 '입력을 하고 싶다' 라는 문구 입력
$('#url').val()
url의 value값을 가져옴. ex) 홍길동
박스를 감췄다가 보여주기!
1) 박스 id값으로 post-box 작성
2) $('#post-box').hide() -> 박스 감추기
3) $('#post-box').show() -> 박스 보여주기
let temp_html = `<button>나는 버튼이다</button>`
백틱(`)
$('#cards-box').append(temp_html)
백틱 안의 문자열을 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>`
-> temp_html에 문자열을 넣음.
$('#cards-box').append(temp_html)
-> jQuery를 이용하여 카드를 붙여넣기 함.
<script>
function open_box(){
alert('박스 열기')
}
function close_box(){
alert('박스 닫기')
}
</script>
<button onclick = "open_box()">영화 기록하기</button>
영화 기록하기 버튼을 누르면 '박스 열기'라는 메시지 출력
<button onclick = "close_box()" type="button" class="btn btn-outline-dark">닫기</button>
닫기 버튼을 누르면 '박스 닫기'라는 메시지 출력
영화 기록하기 버튼을 누르면 박스가 열리고, 닫기 버튼을 누르면 박스가 닫히게 해보자!
처음 화면에서 박스는 열리지 않은 상태여야 한다.
.mypost {
max-width : 500px;
width: 95%;
margin: 20px auto 0px auto;
box-shadow: 0px 0px 3px 0px gray;
padding: 20px;
display: none;
}
.mypost의 display를 none으로 하면 박스가 처음부터 나오지 않는다.
영화 기록하기 버튼을 눌렀을 때 post-box를 show
function open_box(){
$('#post-box').show()
}
<button onclick = "open_box()">영화 기록하기</button>
닫기 버튼을 눌렀을 때 post-box를 hide
function close_box(){
$('#post-box').hide()
}
<button onclick = "close_box()" type="button" class="btn btn-outline-dark">닫기</button>
1. 빈칸 체크 함수 만들기
1-1. 버튼을 눌렀을 때 입력한 글자로 얼럿 띄우기
1-2. 버튼을 눌렀을 때 칸에 아무것도 없으면 "입력하세요!" 얼럿 띄우기
function q1() {
let txt = $('#input-q1').val()
if (txt == '') {
alert('빈칸입니다')
} else {
alert(txt)
}
}
<input id="input-q1" type="text" /> <button onclick="q1()">클릭</button>
input-q1의 값을 txt에 대입하고, txt가 빈칸이면 빈칸입니다 출력. txt가 있으면 txt 그대로 출력.
2. 이메일 판별 함수 만들기
2-1. 버튼을 눌렀을 때 입력받은 이메일로 얼럿 띄우기
2-2. 이메일이 아니면(@가 없으면) '이메일이 아닙니다'라는 얼럿 띄우기
2-3. 이메일 도메인만 얼럿 띄우기
자바스크립트 문자열 확인하기 includes
includes(String)은 문자열에 인자가 있는지 확인함. 있으면 true, 없으면 false
console.log(txt.includes('@'))
txt에 '@'인자가 있는지 없는지 확인. -> 검사 콘솔창에서 true, false 메시지가 나옴.
myemail.split('@')
-> ['abc', 'gmail.com']0: "abc"1: "gmail.com"length: 2[[Prototype]]: Array(0)
split()을 이용하여 해당 인자를 기준으로 분리한다.
myemail.split('@')[1]
->'gmail.com'
split('@')으로 분리된 배열 중 1번째 인자 출력
myemail.split('@')[1].split('.')
-> ['gmail', 'com']
split('@')으로 분리된 배열 중 1번째 인자를 다시 split('.')을 이용하여 .을 기준으로 분리한다.
myemail.split('@')[1].split('.')[0]
->'gmail'
분리된 배열에서 0번째 인자인 gmail만을 출력할 수 있다.
function q2() {
let txt = $('#input-q2').val()
if (txt.includes('@') == true) {
alert(txt.split('@')[1].split('.')[0])
}
else {
alert('이메일이 아닙니다.')
}
console.log(txt.includes('@'))
}
<input id="input-q2" type="text" /> <button onclick="q2()">클릭</button>
input-q2값을 받은 txt에 '@'가 있으면 gmail만 출력.
txt에 @가 없으면 이메일이 아닙니다 출력.
3. HTML 붙이기/지우기 연습
3-1. 이름을 입력하면 아래 나오게 하기
function q3() {
let txt = $('#input-q3').val()
let temp_html = `<li>${txt}</li>`
$('#names-q3').append(temp_html)
}
<ul id="names-q3">
<li>세종대왕</li>
<li>임꺽정</li>
txt에 input-q3 값을 대입해주고, temp_html에 저장한 후 .append()를 이용하여 names-q3 에 붙이기.
3-2. 다지우기 버튼을 만들기
function q3_remove() {
$('#names-q3').empty()
}
names-q3 값을 지우기
API는 은행 창구와 같다!
GET : 데이터 조회
POST : 데이터 생성 / 변경 / 삭제
GET
google.com/search?q=아이폰&sourceid=chrome&ie=UTF-8
google이라는 서버의 search라는 창구에서 데이터를 가져옴.
?부터 전달할 데이터가 작성되며, &는 데이터를 이어줄 때 사용.
API는 프론트엔드 개발자, 백엔드 개발자가 미리 정해둔 약속임.프론트엔드 : code라는 이름으로 영화 번호를 준다고 약속백엔드 : code가 영화번호임을 인지하고 코딩
딕셔너리와 리스트가 합쳐진 형태로 내려오는 것을 JSON형식이라고 함.
.bad {
color : red;
}
function q1() {
$('#names-q1').empty()
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulair",
data: {},
success: function (response) {
let rows = response['RealtimeCityAir']['row']
for (let i = 0; i < rows.length; i++) {
let gu_name = rows[i]['MSRSTE_NM']
let gu_mise = rows[i]['IDEX_MVL']
let temp_html = ``
if (gu_mise > 40) {
temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>`
}
else {
temp_html = `<li>${gu_name} : ${gu_mise}</li>`
}
$('#names-q1').append(temp_html)
}
}
})
}
GET 방식으로 데이터를 가져와서 names-q1에 temp_html을 이용하여 찍어준다.
for문을 이용하여 지역, 미세먼지 농도를 가져온다.
style에서 bad라는 이름표를 만들고, 미세먼지 농도가 40보다 크면 빨간색으로 입력되도록 만든다.
맨 처음에 .empty()를 이용하여 업데이트를 할 때마다 비워진 상태로 나타내도록 한다.
서울시 따릉이 데이터
let rows = response['getStationList']['row']
for (let i = 0; i < rows.length; i++){
let name = rows[i]['stationName']
let rack = rows[i]['rackTotCnt']
let bike = rows[i]['parkingBikeTotCnt']
따릉이 데이터를 열로 구분하여 돌림.
거치대 위치, 거치대 수, 현재 따릉이 수를 각각 name, rack, bike에 대입.
let temp_html = `<tr>
<td>${name}</td>
<td>${rack}</td>
<td>${bike}</td>
</tr>`
temp_html에 name, rack, bike를 대입.
$('#names-q1').append(temp_html)
names-q1 밑에 temp_html 추가하기.
지워주고 붙여줘야함! -> .empty()
$('#names-q1').empty()
다섯 개보다 적은 곳은 빨간색으로 표기.
1. 클래스를 만든다.
.urgent {
color : red;
}
2. temp_html을 만들어서 빈 문자열로 둔다.
let temp_html = ``
3. 조건문 작성
if (bike < 5) {
temp_html = `<tr class = "urgent">
<td>${name}</td>
<td>${rack}</td>
<td>${bike}</td>
</tr>`
} else {
temp_html = `<tr>
<td>${name}</td>
<td>${rack}</td>
<td>${bike}</td>
</tr>`
}
bike가 5보다 작으면 class = "urgent" 적용.
Ajax - 이미지 이용하기
이미지 바꾸기 : $("#아이디값").attr("src", 이미지 URL);
텍스트 바꾸기 : $("#아이디값").text("바꾸고 싶은 텍스트");
$('#img-rtan').attr('src')
img-rtan의 src값을 다음 URL로 바꿈.
$('#text-rtan').text(msg)
text-rtan의 text를 msg로 바꿈.
숙제 - 기온 표시하기
<p>현재기온 : <span id = "temp">00.0</span>도</p>
00.0부분만 span으로 묶고 id를 temp로 설정하면, temp 부분만 .text()로 바꿔줄 수 있다.
기온은 버튼을 눌러서 바뀌는 게 아니고,
로딩 후 바로 나타나야 하기 때문에 로딩 후 alert을 호출하는 기능을 사용해본다.
$(document).ready(function () {
alert('다 로딩됐다!')
});
로딩이 완료되면 알림창이 뜬다.
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/weather/yongin",
data: {},
success: function (response) {
let msg = response['temp']
$('#temp').text(msg)
}
})
});
url을 날씨 API 주소로 바꿔주고,
msg라는 변수에 기온을 대입한다.
temp라는 아이디를 msg로 바꿔주면 기온이 나타난다.
'개발일지' 카테고리의 다른 글
[생활코딩] React #2 (0) | 2022.09.19 |
---|---|
[생활코딩] React #1 (0) | 2022.09.17 |
[스파르타코딩클럽] 웹개발 종합반 3주차 (0) | 2022.08.27 |
[스파르타코딩클럽] 웹개발 종합반 1주차 (0) | 2022.07.22 |
[스파르타코딩클럽] 데이터분석 입문 1주차 (0) | 2022.07.21 |