반응형
[수업목표]
1. Javascript 문법에 익숙해진다.
2. jQuery로 간단한 HTML을 조작할 수 있다.
3. Ajax로 서버 API(약속)에 데이터를 주고, 결과를 받아온다.
[배운 것]
- Ajax 계속 반복하기
실패한 코드 강사님이 하는 거 보면서 따라 적는 방식으로 천천히 다시 해봄..
정말 놀랍게도 화면 보고 그대로 따라하는데 내가 하면 오류 뜨고 강사님이 하면 잘 됨...
이유가 뭔가 자세히 봤더니 List를 Lis라고 썼다던가, 괄호를 안 닫아줬다던가 하는 것들 때문임.
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JQuery 연습하고 가기!</title>
<!-- JQuery를 import 합니다 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
table {
border: 1px solid;
border-collapse: collapse;
}
td,
th {
padding: 10px;
border: 1px solid;
}
.urgent {
color : red;
}
</style>
<script>
function q1() {
$('#names-q1').empty()
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulbike",
data: {},
success: function (response) {
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']
let temp_html = ``
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>`
}
$('#names-q1').append(temp_html)
}
}
})
}
// 여기에 코드를 입력하세요
</script>
</head>
<body>
<h1>jQuery + Ajax의 조합을 연습하자!</h1>
<hr />
<div class="question-box">
<h2>2. 서울시 OpenAPI(실시간 따릉기 현황)를 이용하기</h2>
<p>모든 위치의 따릉이 현황을 보여주세요</p>
<p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
<button onclick="q1()">업데이트</button>
<table>
<thead>
<tr>
<td>거치대 위치</td>
<td>거치대 수</td>
<td>현재 거치된 따릉이 수</td>
</tr>
</thead>
<tbody id="names-q1">
</tbody>
</table>
</div>
</body>
</html>
이것도 제대로 나오지가 않길래 혹시 지금 데이터 자체가 5보다 작은 게 없나 싶어서 5와 같거나 작은 걸로 바꿈.. 근데 그것도 순서를 =< 라고 했더니 얘가 인식을 못해서 오류 띄우길래 바꿔서 적음.
마지막 퀴즈
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JQuery 연습하고 가기!</title>
<!-- JQuery를 import 합니다 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
div.question-box > div {
margin-top: 30px;
}
</style>
<script>
function q1() {
$('#img-cat').empty()
$.ajax({
type: "GET",
url: "https://api.thecatapi.com/v1/images/search",
data: {},
success: function (response) {
let rows = response[0]['url']
$('#img-cat').attr("src", rows);
}
})
}
</script>
</head>
<body>
<h1>JQuery+Ajax의 조합을 연습하자!</h1>
<hr/>
<div class="question-box">
<h2>3. 랜덤 고양이 사진 API를 이용하기</h2>
<p>예쁜 고양이 사진을 보여주세요</p>
<p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
<button onclick="q1()">고양이를 보자</button>
<div>
<img id="img-cat" src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/>
</div>
</div>
</body>
</html>
성공은 했지만 10분 정도면 끝날 거라고 했는데 15분 정도 걸림.
나 스스로 생각해서 코드를 짠 게 아니고 이전 퀴즈에서 했던 걸 뼈대로 해서 구글링 해서 나온 코드를 그대로 갖다 쓴 거라서 [0]이 왜 들어가야 되는 건지 이해는 못 했지만 고양이가 귀엽다고 생각하던 상태에서 설명을 보고 깨달음을 얻음
계속 콘솔 찍어보라고 하는 이유가 달리 있는 게 아니었군.. 0번째라는 뜻이었다.
[수강소감]
2주차가 고비라고 말씀해주셔서 위로가 되었음 나만 2주차 짜증났던거 아니군...
다들 힘드셨군요 동지들이여...
반응형
'개발일지' 카테고리의 다른 글
[내일배움단] 엑셀보다 쉬운 SQL - 4주차 숙제, SQL 문법 총정리 (0) | 2022.01.27 |
---|---|
[내일배움단] 엑셀보다 쉬운 SQL - 4주차 완강! / 22년 1월 27일 (0) | 2022.01.27 |
[내일배움단] 왕초보 비개발자를 위한 웹개발 종합반 2주차 / 22년 1월 20일에 수강하고 21일에 쓰다 (0) | 2022.01.21 |
[내일배움단] 왕초보 비개발자를 위한 웹개발 종합반 2주차 / 22년 1월 15일 (0) | 2022.01.15 |
[내일배움단] 엑셀보다 쉬운 SQL - 3주차 / 22년 1월 11일 (1) | 2022.01.11 |
댓글