API 데이터를 반복하고 JavaScript를 사용하여 DOM에 여러 검색 항목을 표시합니다.

맷 데이비스

https://restcountries.eu/ API 및 axios를 사용하여 검색 API 앱을 설정하려고합니다 .

원하는대로 모든 것을 DOM에 표시 할 수있었습니다. 그러나 "United"또는 이름의 일부만 포함 된 항목을 검색하는 경우. 정의되지 않은 것으로 표시되거나 마지막 검색 항목 만 표시되지만 반복하면 표시됩니다. 입력 한 검색 기준에 따라 모든 검색 항목을 DOM으로 가져오고 싶습니다.

다음은 HTML입니다.

<body>
    <div class="search-container">
      <form id="form" class="form">
        <input type="text" id="search" placeholder="Search for country..." />
      </form>
    </div>
    <main id="main">
      <div id="map" class="google-map"></div>
    </main>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.21.1/axios.min.js"></script>
    <script src="script.js"></script>
  </body>
</html>

그리고 여기에 JS :

const APIURL = 'https://restcountries.eu/rest/v2/name/'
// const GOOGLE_MAPS_API = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyDhlU1KMTlTh4C__bTJBxbVA-s7wvQbO9E&callback=initMap'
const main = document.getElementById('main')
const form = document.getElementById('form')
const search = document.getElementById('search')



async function getCountryData(name) {
    try {
        
        const { data } = await axios.get(APIURL + name)

        data.forEach(res => {
            let countryArr = res

            createCountryCard(countryArr)
        } )

       
    } catch (err) {
        
        if(err.response.status == 404) {
            
            createErrorCard('No countries found')
         
            setTimeout(() => { 
                main.innerHTML = ''}
                , 1500);
        }
    }
}

function createCountryCard(country) {
    const cardHTML = `
    <div class="content-container">
        <div class="card">
         <div class="wrapper">
             <div class="card-title">
              <h2>${country.name}</h2>
              <h4>Capital: ${country.capital}</h4>
              <h5>Population: ${country.population.toLocaleString('en')}</h5>
        </div>
        <div class="card-image">
          <img
            src="${country.flag}"
            alt="${country.name +'-flag'}"
          />
        </div>
      </div>
      <div class="wrapper">
        <div class="map-content">
          <div id="map" class="google-map"></div>
        </div>
        <div class="card-content">
          <ul class="card-list">
            <li><strong>Region:</strong> ${country.region}</li>
            <li><strong>Subregion:</strong> ${country.subregion}</li>
            <li><strong>Currency:</strong> ${country.currencies[0].name}<span> ${country.currencies[0].symbol}</span></li>
            <li><strong>Spoken Language:</strong> ${country.languages[0].name}</li>
            <li><strong>Timezone:</strong> ${country.timezones}</li>
          </ul>
        </div>
      </div>
    </div>
  </div>
  `

  main.innerHTML = cardHTML

  console.log(country)
}

function createErrorCard(msg) {
    const cardHTML = `
    <div class="card">
        <h1>${msg}</h1>
    </div>
    `
    main.innerHTML = cardHTML

  
}

// Search Input
form.addEventListener('submit', (e) => {
    e.preventDefault()

    const countryName = search.value

    if(countryName) {
        getCountryData(countryName)

        search.value = ''
    }
})

어떤 도움이라도 대단히 감사하겠습니다. 감사

Farhodius

main.innerHTML = cardHTMLline in createCountryCard()function #main은 각 루프 반복으로 요소 의 내용을 덮어 씁니다 . 그렇기 때문에 검색 결과에서 마지막 항목 만 가져 오는 것입니다. 로 변경해보십시오 main.innerHTML += cardHTML.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Laravel : 여러 검색어를 사용하여 항목을 얻을 수 있습니다

분류에서Dev

android studio는 Sqlite 데이터베이스에서 데이터를 검색하여 textview에 표시합니다

분류에서Dev

Firestore UI를 사용하여 Firestore에서 데이터를 검색하고 RecyclerView에 표시하는 것은 API 24 이상에서 작동하지 않습니다.

분류에서Dev

API 검색에서 반환 된 항목 목록의 ID를 사용하여 API에서 일부 데이터를 추출하는 방법이 있습니까?

분류에서Dev

Django를 사용하여 검색된 항목의 데이터 표시

분류에서Dev

목록에서 수집 된 항목을 사용하여 웹 사이트를 검색 한 다음 URL을 반환합니다.

분류에서Dev

JSON 객체를 반환하는 API에서 Angular 8을 사용하여 데이터를 검색하려면 어떻게해야합니까?

분류에서Dev

다중 스레딩 모듈을 사용하여 API 데이터를 데이터 프레임으로 검색

분류에서Dev

RegEx를 사용하여 패턴을 검색하고 다른 항목은 제외

분류에서Dev

열을 반복하여 R에서 여러 변수를 검색합니다.

분류에서Dev

각도 관찰 가능 항목을 사용하여 반복적 인 시간 간격 내에 API에서 데이터를 검색하는 방법

분류에서Dev

MySQL은 json 데이터를 추출하고 여러 값을 검색합니다.

분류에서Dev

Python을 사용하여 SQL Server의 단일 열에서 데이터 항목을 검색합니다.

분류에서Dev

양식 검색에서 데이터 검색. JSON 기반 API URL을 사용하여 데이터 검색

분류에서Dev

Javascript를 사용하여 JSON 표기법에서 항목 값을 반복하고 추출합니다.

분류에서Dev

Ruby-사용자 입력 + 정규식으로 해시 키를 검색하고 여러 일치 항목을 반환합니다.

분류에서Dev

CakePHP에서 여러 테이블을 결합하고 데이터를 검색합니다.

분류에서Dev

데이터베이스에서 이미지를 검색하고 JSTL을 사용하여 JSP에 표시

분류에서Dev

jQuery를 사용하여 wordpress의 플러그인 검색 필드에 자리 표시 자 속성을 추가하려고합니다.

분류에서Dev

여러 테이블에서 데이터를 검색하고 viewmodel을 사용하여보기에 표시하는 방법

분류에서Dev

Pandas를 사용하여 CSV에서 데이터를 읽는 동안 동일한 색인을 가진 여러 항목을 무시하는 방법

분류에서Dev

json 배열을 필터링하고 angularjs를 사용하여 배열 항목에 따라 2 개의 테이블에 데이터를 표시합니다.

분류에서Dev

Servlet을 사용하여 데이터베이스에서 데이터를 검색하고 JSP에 표시 할 수 없습니다.

분류에서Dev

EWS Manage API를 사용하여 Clutter 폴더에서 항목을 검색하는 방법 C #

분류에서Dev

해시에서 여러 일치 항목을 검색하고 키를 병합하고 값을 더합니다.

분류에서Dev

내 Wordpress 플러그인에서 설정 API를 사용하여 색인화 된 여러 데이터 세트를 어떻게 저장하고 검색합니까?

분류에서Dev

목록 상자 VBA에서 다중 열 데이터의 여러 항목을 검색하고 표시합니다.

분류에서Dev

JQuery / Ajax를 사용하여 API에서 데이터 검색

분류에서Dev

NodeJS는 MongoDB에서 여러 데이터를 검색하고 Jade (Pug)에 표시합니다.

Related 관련 기사

  1. 1

    Laravel : 여러 검색어를 사용하여 항목을 얻을 수 있습니다

  2. 2

    android studio는 Sqlite 데이터베이스에서 데이터를 검색하여 textview에 표시합니다

  3. 3

    Firestore UI를 사용하여 Firestore에서 데이터를 검색하고 RecyclerView에 표시하는 것은 API 24 이상에서 작동하지 않습니다.

  4. 4

    API 검색에서 반환 된 항목 목록의 ID를 사용하여 API에서 일부 데이터를 추출하는 방법이 있습니까?

  5. 5

    Django를 사용하여 검색된 항목의 데이터 표시

  6. 6

    목록에서 수집 된 항목을 사용하여 웹 사이트를 검색 한 다음 URL을 반환합니다.

  7. 7

    JSON 객체를 반환하는 API에서 Angular 8을 사용하여 데이터를 검색하려면 어떻게해야합니까?

  8. 8

    다중 스레딩 모듈을 사용하여 API 데이터를 데이터 프레임으로 검색

  9. 9

    RegEx를 사용하여 패턴을 검색하고 다른 항목은 제외

  10. 10

    열을 반복하여 R에서 여러 변수를 검색합니다.

  11. 11

    각도 관찰 가능 항목을 사용하여 반복적 인 시간 간격 내에 API에서 데이터를 검색하는 방법

  12. 12

    MySQL은 json 데이터를 추출하고 여러 값을 검색합니다.

  13. 13

    Python을 사용하여 SQL Server의 단일 열에서 데이터 항목을 검색합니다.

  14. 14

    양식 검색에서 데이터 검색. JSON 기반 API URL을 사용하여 데이터 검색

  15. 15

    Javascript를 사용하여 JSON 표기법에서 항목 값을 반복하고 추출합니다.

  16. 16

    Ruby-사용자 입력 + 정규식으로 해시 키를 검색하고 여러 일치 항목을 반환합니다.

  17. 17

    CakePHP에서 여러 테이블을 결합하고 데이터를 검색합니다.

  18. 18

    데이터베이스에서 이미지를 검색하고 JSTL을 사용하여 JSP에 표시

  19. 19

    jQuery를 사용하여 wordpress의 플러그인 검색 필드에 자리 표시 자 속성을 추가하려고합니다.

  20. 20

    여러 테이블에서 데이터를 검색하고 viewmodel을 사용하여보기에 표시하는 방법

  21. 21

    Pandas를 사용하여 CSV에서 데이터를 읽는 동안 동일한 색인을 가진 여러 항목을 무시하는 방법

  22. 22

    json 배열을 필터링하고 angularjs를 사용하여 배열 항목에 따라 2 개의 테이블에 데이터를 표시합니다.

  23. 23

    Servlet을 사용하여 데이터베이스에서 데이터를 검색하고 JSP에 표시 할 수 없습니다.

  24. 24

    EWS Manage API를 사용하여 Clutter 폴더에서 항목을 검색하는 방법 C #

  25. 25

    해시에서 여러 일치 항목을 검색하고 키를 병합하고 값을 더합니다.

  26. 26

    내 Wordpress 플러그인에서 설정 API를 사용하여 색인화 된 여러 데이터 세트를 어떻게 저장하고 검색합니까?

  27. 27

    목록 상자 VBA에서 다중 열 데이터의 여러 항목을 검색하고 표시합니다.

  28. 28

    JQuery / Ajax를 사용하여 API에서 데이터 검색

  29. 29

    NodeJS는 MongoDB에서 여러 데이터를 검색하고 Jade (Pug)에 표시합니다.

뜨겁다태그

보관