Как заменить один список на другой в JS?

Мне нужно заменить один список с персонажами на другой. Допустим, вводим имя или букву персонажа — выводится список. Потом стираем и набираем другое имя или букву — и к имеющемуся списку добавляется еще один, в итоге получается длинная портянка. Мне нужно при каждом новом вводе создавать новый список, стирая то, что было найдено ранее. Как это сделать?

<div class="content">

  <div class="search">
    <div class="search_form">
      <label>Поиск персонажа:
        <input type="text" class="person_search" id="person_search_input">
      </label>
      <button id="search_request_btn" class="button">Найти</button>
    </div>
    <ul class="search_result"></ul>
  </div>

  <div class="person_data">
    <div>Имя: <span id="name"></div>
    <div>Рост: <span id="height"></div>
    <div>Вес: <span id="mass"></div>
    <div>Год рождения: <span id="birth_year"></div>
    <div>В скольки фильмах появлялся: <span id="films_count"></div>
  </div>
</div>

let searchResult = document.querySelector(".search_result");
let input = document.querySelector("input");
let searchPerson = document.querySelector("#person_search_input");
let btn = document.querySelector(".button");
let persons;

btn.addEventListener("click", function(ev) {
    ev.preventDefault();
    if (searchPerson.value == "") {
        alert("Введите имя персонажа 'Звездных войн'");
        return false;
    } else {

    }
    fetch(`https://swapi.dev/api/people/?search=${searchPerson.value}`)
        .then(function(response) {
            //console.log(response);
            return response.json();
        })
        .then(function(data) {     
            persons = data.results;
            persons.forEach(item => {
                console.log(item);
                addLi(item);
                // попытка замены одного списка на другой
                if (!searchResult === null) {
                    let ul = document.querySelector(".search_result");
                    let newUl = ul;
                    ul.replaceWith(newUl);
                }
            })
            searchResult.addEventListener("click", function(ev) {
                if (ev.target.tagName == 'LI') {
                    let selectedName = ev.target.tagName = ev.target.innerText;
                    let selectedPerson = persons.find(item => item.name == selectedName);
                
                    document.getElementById("name").textContent = selectedPerson.name;
                    document.getElementById("height").textContent = selectedPerson.height;
                    document.getElementById("mass").textContent = selectedPerson.mass;
                    document.getElementById("birth_year").textContent = selectedPerson.birth_year;
                    document.getElementById("films_count").textContent = selectedPerson.films.forEach(item => {
                        fetch(item).then(function(response) {
                            return response.json();
                        }).then(function(data) {
                            console.log(data);
                            document.getElementById("films_count").innerHTML += `<p>${data.title}</p>`;
                        });
                    })
                }
            })
        })
        .catch((err) => {
            console.log('Fetch Error', err);
        });
})

function addLi(item) {
    let li = document.createElement("li");
    li.className = "createLi";
    li.textContent = item.name;
    searchResult.append(li);
}


Ответы (0 шт):