На странице есть таблица, сверстанная div'ами, есть скрипт который фильтрует эту таблицу, при вводе необходимого значения в поле #searchInput, но суть в том, что в таблице изначально, при загрузке страницы, есть строки, которые скрыты свойством display:none, и если воспользоваться фильтром и потом стереть текст из фильтра, то отображаются все строки, даже те которые были скрыты при загрузке страницы. Можно ли это как-то обойти и скрывать/отображать только строки, которые не были изначально скрыты
let input = document.querySelector("#searchInput");
let arrData = document.getElementsByClassName('trading__market-table-row');
input.addEventListener('blur', showChoice);
function showChoice(event){
let value = event.target.value;
if (value === ""){
for (let i=0; i<arrData.length; i++){
let item = arrData[i]
item.style.display = ""
}
return
}
for (let i=0; i<arrData.length; i++){
let item = arrData[i]
if (item.id !== value) {
item.style.display = "none"
} else {
item.style.display = ""
}
}
}
Вы можете заранее отфильтровать полученные строки и оставить только не скрытые и уже по ним проводить поиск. JSFiddle
const rowsWithoutHidden = rows.filter((row) => {
if (!row.classList.contains('hidden')) {
return row;
} })
Сборка персонального компьютера от Artline: умный выбор для современных пользователей