Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2021, 21:43
Новичок на форуме
Отправить личное сообщение для b3ng3r Посмотреть профиль Найти все сообщения от b3ng3r
 
Регистрация: 04.09.2021
Сообщений: 7

Как увеличить id элемента при динамическом создании в JS?
По ходу написания сайта столкнулся с подключением js, так как в данном языке я не силен, созревает ряд вопросов. Вот один из них.
Имею данный код, необходимо сделать чтобы при динамическом создании "ячеек" с содержимым в начале добавлялся дополнительный пустой див с уникальным id. от 1 до 20.
getMovies(API_URL_POPULAR);

async function getMovies(url) {
  const resp = await fetch(url, {
    headers: {
      "Content-Type": "application/json",
      "X-API-KEY": API_KEY,
    },
  });
    
  const respData = await resp.json();
  showMovies(respData);
}

function getClassByRate(vote) {
  if (vote >= 7) {
    return "green";
  } else if (vote > 5) {
    return "orange";
  } else {
    return "red";
  }
}


            
      

function showMovies(data) {
  const moviesEl = document.querySelector(".movies");

  // Очистка фильмов
  document.querySelector(".movies").innerHTML = "";
  data.films.forEach((movie) => {
    const movieEl = document.createElement("div");
    movieEl.classList.add("movie");
    movieEl.innerHTML = `
        <div class="movie__cover-inner">
        <img
          src="${movie.posterUrlPreview}"
          class="movie__cover"
          alt="${movie.nameRu}"
        
          />  
         
        
        <div class="movie__cover--darkened"></div>
      </div>
      <div class="movie__info">
        <div class="movie__title">${movie.nameRu}</div>
        <div class="movie__category">${movie.genres.map(
          (genre) => ` ${genre.genre}`
        )}</div>
        ${
          movie.rating &&
          `
        <div class="movie__average movie__average--${getClassByRate(
          movie.rating
        )}">${movie.rating}</div>
        `
        }
      </div>
    

        `;


 
    moviesEl.appendChild(movieEl);
  });
}
        

   

const form = document.querySelector("form");
const search = document.querySelector(".header__search");

form.addEventListener("submit", (e) => {
  e.preventDefault();

  const apiSearchUrl = `${API_URL_SEARCH}${search.value}`;
  if (search.value) {
    getMovies(apiSearchUrl);

    search.value = "";
  }
});
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2021, 22:30
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

data.films.forEach((movie, i) => {
// ...
`<div id="id-${i+1}"></div>`

Только обычно id тебе не нужен когда создаёшь много однотипных элементов. Привязывайся к классу.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2021, 22:44
Новичок на форуме
Отправить личное сообщение для b3ng3r Посмотреть профиль Найти все сообщения от b3ng3r
 
Регистрация: 04.09.2021
Сообщений: 7

Благодарю, помогло
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сбросить данные формы только при ее отправке? sadovod Общие вопросы Javascript 1 11.04.2020 10:21
не пойму как вызвать правильный номер элемента при клике lennaganci Элементы интерфейса 4 26.07.2016 14:43
JS + DIV как не допустить скрытия элемента по нажатию на блок? djsadd Элементы интерфейса 1 19.08.2013 09:18
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00