Solution
const input = document.querySelector("#autocomplete input");
const ul = document.querySelector("#autocomplete ul");
const data = ["apple", "banana", "cherry", "date"];
const showSuggestions = (arr) => {
const listHTML = arr.map((item) => `<li class="list-item">${item}</li>`).join("");
ul.innerHTML = listHTML;
ul.style.display = listHTML ? "block" : "none";
};
const onItemClick = (evt) => {
if (evt.target.tagName === "LI") {
input.value = evt.target.textContent;
ul.innerHTML = "";
}
};
input.addEventListener("input", (evt) => {
const query = evt.target.value.toLowerCase();
const suggestions = query ? data.filter((item) => item.toLowerCase().startsWith(query)) : [];
showSuggestions(suggestions);
});
ul.addEventListener("click", onItemClick);
document.addEventListener("click", (event) => {
if (!event.target.closest("#autocomplete")) {
ul.innerHTML = "";
}
});