I have the following sample code :
CODE HTML:
<ul>
<li class="item"> item 1 </li>
<li class="item"> item 1 </li>
<li class="item"> item 1 </li>
<li class="item"> item 1 </li>
<li class="item hidden"> item 1 </li>
<li class="item hidden"> item 1 </li>
</ul>
<button class="button">Show/Hide element</button>
CODE CSS:
.hidden {
display: none;
}
.visible {
display: block;
}
CODE JS:
$('.button').on('click', function (e) {
var item = $('.item');
item.removeClass('hidden');
});
I want to add class .visible
to the elements that previously had the .hidden
class. Basically I want to hide the items again at the next click and be a toggle of classes.
How can I hide the last two items?
Thanks in advance!
You need to use .toggle()
$('.button').on('click', function (e) {
$('.hidden').toggle('visible');
});
Try this, no need of css, just .toggle() will do it.
$('.button').on('click', function (e) { $('.hidden').toggle(); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li class="item"> item 1 </li> <li class="item"> item 1 </li> <li class="item"> item 1 </li> <li class="item"> item 1 </li> <li class="item hidden"> item 1 </li> <li class="item hidden"> item 1 </li> </ul> <button class="button">Show/Hide element</button>
Alternatively you can also use below approach:
CSS
.hidden {
display:none;
}
JQuery
$('.button').on('click', function (e) {
$('#anyElement').toggleClass('hidden');
});
Alternatively, You can loop through each element on button click and remove/add the relevant classes.
$("button").click(function(){ $("li").each(function(){ let $this = $(this); if($this.hasClass('hidden')){ $this.removeClass("hidden").addClass("visible"); } else if($this.hasClass('visible')){ $this.removeClass("visible").addClass("hidden"); } }) })
.hidden { display: none; } .visible { display: block; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li class="item"> item 1 </li> <li class="item"> item 1 </li> <li class="item"> item 1 </li> <li class="item"> item 1 </li> <li class="item hidden"> item 1 </li> <li class="item hidden"> item 1 </li> </ul> <button class="button">Show/Hide element</button>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.