Я использую React to map
для набора данных, отображаемых в карточках на странице. Я пытаюсь реализовать функцию поиска / фильтрации, чтобы, когда пользователь вводит слово «бицепс», он видел только карточки, содержащие слово «бицепс». В идеале я бы хотел обыскать всю карту, включая описание. Независимо от того, что я пытаюсь, я не могу заставить панель поиска влиять на карточки. Я не получаю сообщений об ошибках, но когда я ищу что-либо, ни одна из карточек не отфильтровывается, даже если они не содержат поискового запроса.
Вот ссылка CodeSandbox . Функция поиска, которую я пытаюсь использовать, приведена ниже:
function mySearchFunction() {
var input, filter, div, dl, a, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
div = document.getElementById("myDiv");
dl = div.getElementsByTagName("dl");
for (i = 0; i < dl.length; i++) {
a = dl[i].getElementsByTagName("span")[1];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
dl[i].style.display = "";
} else {
dl[i].style.display = "none";
}
}
}
Я новичок в Javascript, поэтому, если есть другая функция / функция, которую вы бы порекомендовали, я, вероятно, просто не знаю еще, и я открыт для всего, пока он использует хуки вместо классов, и имейте в виду, что я все еще изучаю это, поэтому я пытаюсь делать что-то по одному шагу за раз (т.е. я не Я ничего не знаю о Angular или Vue или других интерфейсных фреймворках, отличных от React).