Ajax 기본 골격
$.ajax({
type: "GET",
url: "여기에URL을입력",
data: {},
success: function(response){
console.log(response)
}
})
미세먼지 open API
http://spartacodingclub.shop/sparta_api/seoulair
HTML
<!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;
}
</style>
<script>
function q1() {
// 여기에 코드를 입력하세요
}
</script>
</head>
<body>
<h1>jQuery+Ajax의 조합을 연습하자!</h1>
<hr />
<div class="question-box">
<h2>1. 서울시 OpenAPI(실시간 미세먼지 상태)를 이용하기</h2>
<p>모든 구의 미세먼지를 표기해주세요</p>
<p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>
<button onclick="q1()">업데이트</button>
<ul id="names-q1">
<li>중구 : 82</li>
<li>종로구 : 87</li>
<li>용산구 : 84</li>
<li>은평구 : 82</li>
</ul>
</div>
</body>
</html>
문제
1. 업데이트 클릭 시 모든 구의 이름과 미세먼지 수치를 보여주자.
2. 업데이트 클릭 시 기존의 정보는 지워준다.
3. 미세먼지 수치가 40 이상인 곳은 빨갛게 보여준다.
작성한 답안 코드
CSS
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
.bad_mise {
color: red;
}
</style>
Script
<script>
function q1() {
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulair",
data: {},
success: function (response) {
$('#names-q1').empty()
let mise_list = response.RealtimeCityAir.row;
for (let i = 0; i < mise_list.length; i += 1) {
let mise = mise_list[i];
let gu_name = mise.MSRSTE_NM;
let gu_mise = mise.IDEX_MVL;
// console.log(gu_name, gu_mise)
let temp_html = ``;
// 미세먼지 수치가 40 이상인 곳은 빨갛게 보여준다.
if (gu_mise > 40) {
temp_html = `<li class="bad_mise">${gu_name} : ${gu_mise}</li>`;
// $('#names-q1').append(temp_html);
} else {
temp_html = `<li>${gu_name} : ${gu_mise}</li>`;
// $('#names-q1').append(temp_html);
}
$('#names-q1').append(temp_html); // 공통적으로 들어가는 로직은 마지막에 한줄로 합친다.
}
}
})
}
</script>
'항해99' 카테고리의 다른 글
[2주차] [#05] Ajax 함께 연습하기(02) / 랜덤 르탄이 API (0) | 2022.10.04 |
---|---|
[2주차] [#05] Ajax 함께 연습하기(02) / 서울시 따릉이 API (0) | 2022.10.04 |
[2주차] [#03] Ajax 시작, 사용하기 (0) | 2022.10.04 |
[2주차] [#02] 서버 - 클라이언트 통신 이해하기 (0) | 2022.10.04 |
[2주차] [#01] jquery 기초 (0) | 2022.10.04 |