@Alex_87

Как удалять предыдущий DOM элемент при появлении нового элемента контейнера?

Добрый вечер! При вводе в input название города, в контейнер из массива добавляется список город, соответствующий введённой в input символам. Мне необходимо, чтобы при введении каждой следующей буквы, элементы li полностью обновлялись. Помогите пожалуйста этого добиться:
https://codepen.io/Alexei_87/pen/gOwpwzL?editors=1010
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Вместо filterInput.addEventListener('keyup',... пусть будет

filterInput.addEventListener('input', function() {
  const value = this.value.toLowerCase();

  filterResult.innerHTML = resultArr
    .filter(n => n.toLowerCase().includes(value))
    .map(n => `<li>${n}</li>`)
    .join('');
});

или

filterInput.addEventListener('input', e => {
  const value = e.target.value.toLowerCase();

  filterResult.replaceChildren(...resultArr.reduce((acc, n) => {
    if (n.toLowerCase().indexOf(value) !== -1) {
      (acc[acc.length] = document.createElement('li')).textContent = n;
    }
    return acc;
  }, []));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы