Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

267
Views
tratando de hacer clic en el título y mostrar el detalle del párrafo

Estoy tratando de hacer un acordeón que pueda ocultarse y mostrarse según el título en el que he hecho clic. estoy usando jQuery para hacer eso

HTML

 <div class="panelContainer"><!-- 1ST PANEL--> <h2 class="h21">Do I need a website?</h2> <p class="contentBox">Morbi hendrerit accumsan orci, tristique aliquam nunc suscipit nec. Vestibulum consequat ornare nunc, ac tristique urna cursus id. Cras eu viverra leo, vitae rhoncus dui. Vestibulum rutrum neque ac risus eleifend luctus. Phasellus ultrices, enim quis dignissim tempus, nibh sem faucibus nisi, at blandit velit massa in nunc. Praesent enim libero, blandit sed massa ut, imperdiet dictum odio. Maecenas sagittis neque a est porta, at feugiat nulla tempor. Cras vitae tincidunt quam, non interdum quam. Sed imperdiet lacus nibh, eget viverra eros porta ut. Nulla sed tellus velit. Nullam quam dolor, malesuada eget bibendum a, lacinia ac ante.</p> </div> <div class="panelContainer"><!-- 2ND PANEL--> <h2 class="h21">What is SEO?</h2> <p class="contentBox">Aliquam felis orci, varius nec facilisis nec, eleifend ac ante. Donec ligula est, dapibus sed volutpat sit amet, pellentesque id sem. Vestibulum imperdiet volutpat dignissim. Morbi tincidunt lobortis libero et placerat. Pellentesque dignissim diam laoreet, ultricies ligula aliquam, consectetur sapien. Praesent luctus orci in vulputate tincidunt. Aenean fermentum ante non elementum convallis. Sed eget magna enim.</p> </div>

js

 var btnTitle=document.getElementsByClassName("h21"); var contentBox=document.getElementsByClassName('contentBox'); for(var i=0;i<btnTitle.length;i++){ btnTitle[i].addEventListener('click',function(){ var targetSection=document.querySelector(".panelContainer:nth-child(" + (i+1) + ")"); var targetContent=targetSection.querySelector(".contentBox"); for(let item of contentBox){ item.style.display='none'; } targetContent.style.display = 'block'; }); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Use hidden y for...of , así como un simple recorrido DOM usando nextElementSibling . Esto reduce el código necesario a dos líneas.

 for (const toggle of document.getElementsByClassName("h21")) toggle.addEventListener('click', () => toggle.nextElementSibling.hidden = !toggle.nextElementSibling.hidden)
 .h21 { cursor: pointer; }
 <div class="panelContainer"> <!-- 1ST PANEL--> <h2 class="h21">Do I need a website?</h2> <p class="contentBox" hidden>Morbi hendrerit accumsan orci, tristique aliquam nunc suscipit nec. Vestibulum consequat ornare nunc, ac tristique urna cursus id. Cras eu viverra leo, vitae rhoncus dui. Vestibulum rutrum neque ac risus eleifend luctus. Phasellus ultrices, enim quis dignissim tempus, nibh sem faucibus nisi, at blandit velit massa in nunc. Praesent enim libero, blandit sed massa ut, imperdiet dictum odio. Maecenas sagittis neque a est porta, at feugiat nulla tempor. Cras vitae tincidunt quam, non interdum quam. Sed imperdiet lacus nibh, eget viverra eros porta ut. Nulla sed tellus velit. Nullam quam dolor, malesuada eget bibendum a, lacinia ac ante.</p> </div> <div class="panelContainer"> <!-- 2ND PANEL--> <h2 class="h21">What is SEO?</h2> <p class="contentBox" hidden>Aliquam felis orci, varius nec facilisis nec, eleifend ac ante. Donec ligula est, dapibus sed volutpat sit amet, pellentesque id sem. Vestibulum imperdiet volutpat dignissim. Morbi tincidunt lobortis libero et placerat. Pellentesque dignissim diam laoreet, ultricies ligula aliquam, consectetur sapien. Praesent luctus orci in vulputate tincidunt. Aenean fermentum ante non elementum convallis. Sed eget magna enim.</p> </div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!