Как отобразить результаты API на основе месяца - PullRequest
0 голосов
/ 11 апреля 2020

enter code here Итак, я изучаю API и создаю «приложение», которое возвращает праздники вашей страны в текущем месяце.

Я знаю, что должен сравнить текущий месяц с месяцем праздников а затем вернуть праздники, которые находятся в месяце. Это код, который я до сих пор.

var currentMonthHolidays = data.response.holidays.filter(holiday => {
        var holidayDate = new Date(holiday.date.iso);
        var holidayMonth = holidayDate.getMonth();
        var date = new Date();
        var currentMonth = date.getMonth();
        return currentMonth === holidayMonth;
      })

Моя проблема в том, как я могу отобразить результаты. Если это поможет, я использую https://calendarific.com API.

Javascript:

  // Page elements
  let countrySelect = document.getElementById('country-select');
  let holidayName = document.getElementById('holiday-name')
  let holidayDesc = document.getElementById('holiday-desc')
  let holidayDate = document.getElementById('holiday-date')
  let holidayType = document.getElementById('holiday-type')
  let info = document.querySelector('.cell')

// api url
  const api = `https://calendarific.com/api/v2/holidays?&api_key=<my api key>&country=ca&year=2020`;

// When the button is clicked fetch results
countrySelect.addEventListener('click', function() {
  fetch(api)
  .then(res => res.json())
      .then(data => {

        var currentMonthHolidays = data.response.holidays.filter(holiday => {
        var holidayDate = new Date(holiday.date.iso);
        var holidayMonth = holidayDate.getMonth();
        var date = new Date();
        var currentMonth = date.getMonth();
        return currentMonth === holidayMonth;
      })

// This only returns the first result. I have a table which these results are displayed in.
        holidayName.innerHTML = data.response.holidays[0].name;
        holidayDesc.innerHTML = data.response.holidays[0].description;
        holidayDate.innerHTML = data.response.holidays[0].date.iso;
        holidayType.innerHTML = data.response.holidays[0].type;

          console.log(data);
      }, networkError => {
        alert(networkError)
      })
      .catch(err => console.log(err));
  })

HTML:

    <h1 class="heading">Find your countries holiday.</h1>

// Only one country available for now

          <div class="country-select" id="country-select">
            <button id="option0" value="ca">Canada</button>
         </div>


      <!-- Table -->
      <div class="limiter">
      <div class="container-table100">
        <div class="wrap-table100">
            <div class="table">

              <div class="row header">
                <div class="cell">
                  Holiday Name
                </div>
                <div class="cell">
                  Holiday Description
                </div>
                <div class="cell">
                  Holiday Date
                </div>
                <div class="cell">
                  Holiday Type
                </div>
              </div>

              <div class="row">
                <div class="cell" id="holiday-name" data-title="Holiday Name">

                </div>
                <div class="cell" id="holiday-desc" data-title="Holiday Description">

                </div>
                <div class="cell" id="holiday-date" data-title="Holiday Date">

                </div>
                <div class="cell" id="holiday-type" data-title="Holiday Type">

                </div>
              </div>
            </div>
        </div>
      </div>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...