I am building a program that filters the tags based on a user search, i built it with nodes hiding parent nodes based on the user input but was told i need to use classList.add("hidden"). When i try to use it im getting errors that it cant read the classlist.add. is there something obvious that i am missing here?
//variables
let searchInput = document.getElementById("filter");
let searchValue = searchInput.value;
let tags = Array.from(document.querySelectorAll(".tags"));
let imgTag = document.querySelector(".tags");
let thumbnails = document.querySelectorAll("div. thumb-display");
searchInput.addEventListener("input", () => {
for (let i = 0; i < tags.length; i++) {
tags[i].addEventListener("input", () => {
if (imgTag.textContent.includes(searchValue)) {
thumbnails.class.remove("hidden");
} else {
thumbnails.classList.add("hidden");
}
});
}
let resetButton = document.querySelector(".reset");
searchInput.addEventListener("input", () => {
resetButton.classList.remove("hidden");
console.log("text is entered");
});
resetButton.addEventListener("click", () => {
resetButton.classList.add("hidden");
thumbnails.classList.remove("hidden");
searchInput = "";
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Assignment 2 - Filtering Gallery</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<div class="wrapper">
<nav>
<ul>
<li>
<a href="#">Home</a>
</li>
</ul>
<form class="frm-filter">
<div class="frm-group">
<a class="reset hidden" href="#">Reset</a>
<input class="frm-control" type="text" id="filter" name="filter" placeholder="tag filter" />
</div>
</form>
</nav>
<section class="gallery">
<div class="row">
<h1>Gallery</h1>
</div>
<div class="row">
<div class="thumb-display">
<img src="img/thumbs/african_road_to_the_mountain.jpg" alt="african road to the mountain" />
<p class="tags">#africa #mountain #road</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/beach_and_palms.jpg" alt="beach and palms" />
<p class="tags">#palmbeach #distantpeaks</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/beach_road.jpg" alt="beach road" />
<p class="tags">#oceanbeach #mountainroad</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/calm_lake.jpg" alt="calm lake" />
<p class="tags">#lake #clearskies #onthewater</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/fall_bridge.jpg" alt="fall bridge" />
<p class="tags">#fallcolors #bridgecrossing #river</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/fall_colors.jpg" alt="fall colors" />
<p class="tags">#fallcolors #slowdown</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/fall_road.jpg" alt="fall road" />
<p class="tags">#falltrees</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/forest_road.jpg" alt="forest road" />
<p class="tags">#ontheroad #falldriving</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/mountain_flowers.jpg" alt="mountain flowers" />
<p class="tags">#mountainflowers #clouds #river</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/mountain_lake.jpg" alt="mountain lake" />
<p class="tags">#mountainlake #retreat</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/mountain_storm_coming.jpg" alt="mountain storm coming" />
<p class="tags">#stormcoming #thepeak</p>
</div>
<div class="thumb-display">
<img src="img/thumbs/rocky_beach.jpg" alt="rocky beach" />
<p class="tags">#perfectbeach #whitesand</p>
</div>
</div>
</section>
</div>
<script src="js/main.js"></script>
</body>
</html>