Вы можете сделать это с простым JavaScript.
window.onload = function() {
var item = document.getElementsByClassName('item');
for(var i = 0; i < item.length; i++) {
var curr = item[i];
// Binding onclick event with all items
curr.onclick = function(e) {
var hideDesc = document.getElementsByClassName("desc");
// Hiding all descriptions
for(var i = 0; i < hideDesc.length; i++){
hideDesc[i].style.display = "none";
}
// Showing the description
e.target.nextElementSibling.style.display = "block";
}
}
}
.container {
width: 95%;
margin: auto;
display: grid;
grid-template-columns: repeat(8, 1fr);
grid-auto-flow: row dense;
grid-gap: 0.5em;
}
.item,
.desc {
border: 1px solid grey;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
}
.desc {
background: palegoldenrod;
display: none;
grid-column: 1 / -1;
}
<div class="container">
<div class="item">1</div>
<div class="desc">Description 1</div>
<div class="item">2</div>
<div class="desc">Description 2</div>
<div class="item">3</div>
<div class="desc">Description 3</div>
<div class="item">4</div>
<div class="desc">Description 4</div>
<div class="item">5</div>
<div class="desc">Description 5</div>
<div class="item">6</div>
<div class="desc">Description 6</div>
<div class="item">7</div>
<div class="desc">Description 7</div>
<div class="item">8</div>
<div class="desc">Description 8</div>
...
</div>
Или, если вы хотите использовать jQuery.
$(function(){
$(".item", this).click(function(){
$(".desc").hide(); // Hide all exist descriptions
$(this).next(".desc").show(); //show the one which is required.
});
});
.container {
width: 95%;
margin: auto;
display: grid;
grid-template-columns: repeat(8, 1fr);
grid-auto-flow: row dense;
grid-gap: 0.5em;
}
.item,
.desc {
border: 1px solid grey;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
}
.desc {
background: palegoldenrod;
display: none;
grid-column: 1 / -1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<div class="item">1</div>
<div class="desc">Description 1</div>
<div class="item">2</div>
<div class="desc">Description 2</div>
<div class="item">3</div>
<div class="desc">Description 3</div>
<div class="item">4</div>
<div class="desc">Description 4</div>
<div class="item">5</div>
<div class="desc">Description 5</div>
<div class="item">6</div>
<div class="desc">Description 6</div>
<div class="item">7</div>
<div class="desc">Description 7</div>
<div class="item">8</div>
<div class="desc">Description 8</div>
...
</div>