커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-9 fetch 사용 시 $('#names-q1').empty()의 위치
[왕초보] 웹개발 종합반 v0
3주차
북마크
박*은
댓글
3
추천
0
조회수
14
조회수
14
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


문제라기보다 궁금한 점이 있어 질문을 작성합니다.


 id="names-q1" 에 원래 있던 내용을 지운 다음에 fetch에서 가져온 값을 붙이기 위해

$('#names-q1').empty(); 를 사용하는 과정에서

fetch 안이 아닌 fetch 작성 전에 붙여야 결과가 정상적으로 나오는 이유가 잘 이해가 되지 않습니다.


아래 작성한 코드대로 fetch 안에 $('#names-q1').empty(); 를 넣으니

사진처럼 서울시 OpenAPI의 가장 마지막 항목인 강동구의 값만 입력이 되는데

왜 그런 것인지 이해하고 싶습니다.



 




스파르타 즉문즉답




작성한 코드 및 에러 메세지

<!doctype html>

<html lang="ko">


<head>

    <meta charset="UTF-8">

    <title>미세먼지 API로Fetch 연습하고 가기!</title>


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>


    <style type="text/css">

        div.question-box {

            margin: 10px 0 20px 0;

        }

    </style>


    <script>

        function q1() {

           

            let url = 'http://spartacodingclub.shop/sparta_api/seoulair';

            fetch(url).then(res => res.json()).then(data => {

                let rows = data['RealtimeCityAir']['row'];

                rows.forEach(a => {

                   

                    let gu_name = a['MSRSTE_NM'];

                    let gu_mise = a['IDEX_MVL'];


                    let temp_html = `<li>${gu_name} : ${gu_mise}</li>

                    `;

                    $('#names-q1').empty();

                    $('#names-q1').append(temp_html);

                });

            });

        };


    </script>


</head>


<body>

    <h1>Fetch 연습하자!</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>



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴