[JavaScript] AJAX 통신을 이용해서 데이터 가져오기

2023. 5. 9. 18:05·JavaScript
728x90
728x90

코드

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .container h1 {
            margin-bottom: 30px;
        }
        .container button {
            padding: 2px 7px;
        }
        .container {
            width: 400px;
            text-align: center;
            border: 3px solid red;
            padding: 10px 0 20px;
        }
        .todos--ul {
            list-style: none;
            text-align: left;
            margin: 20px 30px 0;
        }
 
    </style>
</head>
<body>
    <script>
        let num = 0;
 
        function fetchAjax() {
            // 통신
            $.ajax({
                // 통신 설정 : header, body 설정 등
                type : "get",
                url : `https://jsonplaceholder.typicode.com/todos`,
                contentType : "application/json; charset=utf-8"
 
            }).done((data, textStatus, xhr) => {
                // 통신 성공 시 콜백 들어옴
                let todo = xhr.responseJSON;
                console.log(todo.title);
 
                for (let i = 0; i < 10; i++) {
                    render(i, todo[i].title);
 
                };
 
            }).fail((error) => {
                // 통신 실패  콜백 들어옴
                console.log(error);
 
            });
 
        }
 
        function render(num, title) {
            // 화면 그리는 함수
            let el = $("<li></li>");
            el.attr("id", `li--${num}`);
 
            el.append(`<input type='checkbox' id='check--${num}'>&nbsp;`)
            el.append(`<label for='check--${num}'>${title}</label`);
            el.css("border-bottom", "1px solid #ccc");
            el.css("padding", "5px 0");
            
            $(".todos--ul").append(el);
            $(`#check--${num}`).on("click", function() {
                if ($(`#check--${num}`).is(":checked")) {
                    $(`#check--${num}`).siblings().css("text-decoration", "line-through");
                } else {
                    $(`#check--${num}`).siblings().css("text-decoration", "none");
                }
            });
 
        }
 
    </script>
 
 
    <div class="container">
        <h1>To-Do List</h1>
        <button onclick="fetchAjax()">todo 가져오기</button>
        <ul class="todos--ul"></ul>
    </div>
 
</body>
</html>
 
Colored by Color Scripter
cs

 

실행

 

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'JavaScript' 카테고리의 다른 글

[JavaScript] 비동기 통신 : AJAX  (0) 2023.05.09
[JavaScript] 비동기 통신 기초 : Promise 타입  (0) 2023.05.09
[JavaScript] toggle() 활용 예제 코드  (0) 2023.05.08
[JavaScript] BOM : document 객체 ★  (0) 2023.05.08
[JavaScript] HTML 렌더링과 JavaScript 실행  (0) 2023.05.08
'JavaScript' 카테고리의 다른 글
  • [JavaScript] 비동기 통신 : AJAX
  • [JavaScript] 비동기 통신 기초 : Promise 타입
  • [JavaScript] toggle() 활용 예제 코드
  • [JavaScript] BOM : document 객체 ★
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    면접
    CSS
    Wordpress
    HTML
    Swing
    SWAGGER
    http
    errorNote
    vuejs
    Android
    SpringBoot
    git
    js
    jQuery
    C#
    cs
    jsp
    SEO
    java
    php
    티스토리챌린지
    zapier
    tailwindcss
    오블완
    typeScript
    Codeigniter
    개발일지
    SQL
    Hotkeys
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[JavaScript] AJAX 통신을 이용해서 데이터 가져오기
상단으로

티스토리툴바