Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7072321
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T05:47:41+00:00 2026-05-28T05:47:41+00:00

I have a bunch of divs that I am expanding/retracting individually using .toggle and

  • 0

I have a bunch of divs that I am expanding/retracting individually using .toggle and would like to have one button that will expand/retract all at the same time. So if one of them is already expanded/retracted it will stay expanded/retracted when clicked but the rest will expand/retract.

Here is what I am using for the individual divs:

$('.toggle-engine').click(function() {
    $('.specs-engine').toggle(400);
$(this).text($(this).text() == '+' ? '-' : '+');
return false;
});

Tried this for expand/retract all but if one of them was already expanded when I clicked expand all it retracted:

$('.expand-all').click(function() {
            $('.specs-body').toggle(400)
    $('.specs-engine').toggle(400)
    $('.specs-curb').toggle(400)
    $('.specs-cap').toggle(400)
    $('.specs-fuel').toggle(400)
    $('.specs-brakes').toggle(400);
$(this).text($(this).text() == '+ Expand All' ? '- Retract All' : '+ Expand All');
return false;
});

Here is the mark up:

<a class="expand-all" href="#">+ Expand All</a>
    <a class="toggle-engine" href="#">+</a>
    <div class="expand specs-engine"></div>
    <a class="toggle-body" href="#">+</a>
    <div class="expand specs-engine"></div>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T05:47:42+00:00Added an answer on May 28, 2026 at 5:47 am

    You can use show or hide instead of toggle to force it to expand (show) or retract (hide) the elements.

    Also, I recommend setting a common class to all the .specs-... elements, like specs, so for example:

    <div class="specs specs-engine"></div>
    <div class="specs specs-curb"></div>
    ... etc
    

    So the JS would be:

    $('.specs').click(function() {$(this).toggle(400);});
    $('.expand-all').click(function() {
      if ($(this).text() == '+ Expand All')
        $('.specs').show(400);
      else
        $('.specs').hide(400);
      $(this).text($(this).text() == '+ Expand All' ? '- Retract All' : '+ Expand All');
    });
    

    EDIT: to make the individual +/- images toggle, do something like:

    $('.specs').click(function() {$(this).toggle(400);});
    $('.expand-all').click(function() {
      if ($(this).text() == '+ Expand All')
        $('.specs').show(400).find('img.plus, img.minus').hide().filter('img.plus').show();
      else
        $('.specs').hide(400).find('img.plus, img.minus').hide().filter('img.minus').show();
      $(this).text($(this).text() == '+ Expand All' ? '- Retract All' : '+ Expand All');
    });
    

    EDIT2: if I understand correctly:

    $('.specs').click(function() {$(this).toggle(400);});
    $('.expand-all').click(function() {
      if ($(this).text() == '+ Expand All')
        $('.specs').show(400).find('.thelink').text('-');
      else
        $('.specs').hide(400).find('.thelink').text('+');
      $(this).text($(this).text() == '+ Expand All' ? '- Retract All' : '+ Expand All');
    });
    

    Anyway, you get it, it’s a matter of selecting the right element and changing its text. jQuery does this for all the elements it finds with that single function call.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to toggle a bunch of divs that each have the same id.
I have a large image, and a bunch of divs that I'm using as
I have a bunch of divs that are all hidden like this <div class=elements>
I have a bunch of code in a routine that looks a bit like
I have a bunch of divs sprinkled throughout a long article. Each one, when
So I have a bunch of divs that each contain a number. I am
I have a bunch of divs like this: <div class=bear></div> <div class=dog></div> How do
I have this situation where I have a bunch of divs that get populated
I have a parent div, and it houses a bunch of child divs. One
So I have a bunch of divs that are hidden on load unless a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.