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

97
Views
DOM. Por qué la clase no se elimina después de hacer clic nuevamente

Traté de diseñar algún elemento haciendo clic en ellos dándoles una clase. Solo uno en el que haga clic tendrá el estilo. Pero si hago clic en el elemento dos veces, la clase no se eliminará. Yo uso alternar, pero todavía no funciona

 const lists = document.querySelectorAll('.list'); lists.forEach(list => { list.addEventListener('click', () => { // remove the previous class active lists.forEach(list => list.classList.remove("active")) list.classList.toggle('active'); }); });
 .list.active { color: crimson; }
 <ul> <li class="list">Lorem ipsum dolor sit.</li> <li class="list">Lorem ipsum dolor sit.</li> <li class="list">Lorem ipsum dolor sit.</li> <li class="list">Lorem ipsum dolor sit.</li> </ul>

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

  1. su .classList.remove() no especifica ninguna clase para eliminar.
    Cambiar a .classList.remove('active')
  2. list.classList.toggle('active'); nunca alternará la clase active . Será lo mismo que list.classList.add('active');

Si realmente quieres alternar la clase active , hazlo

 document.querySelectorAll('#list > li').forEach( (list_el,_,all) => { list_el.onclick =_=> { if ( list_el.classList.toggle('active') ) all.forEach( li => li.classList.toggle('active', list_el===li )) } })
 #list > li { cursor : pointer; } .active { color: crimson; }
 <ul id="list"> <li>Lorem ipsum dolor sit.</li> <li>Lorem ipsum dolor sit.</li> <li>Lorem ipsum dolor sit.</li> <li>Lorem ipsum dolor sit.</li> </ul>

about 4 years ago · Juan Pablo Isaza Report

0

listas.forEach(lista => lista.classList.remove("activo"))

no necesita esta parte ya que alternar ('activo') eliminará la clase cuando haga clic dos veces

 const lists = document.querySelectorAll('.list'); lists.forEach(list => { list.addEventListener('click', () => { // remove the previous class active list.classList.toggle('active'); }); });
 .list.active { color: crimson; }
 <ul> <li class="list">Lorem ipsum dolor sit.</li> <li class="list">Lorem ipsum dolor sit.</li> <li class="list">Lorem ipsum dolor sit.</li> <li class="list">Lorem ipsum dolor sit.</li> </ul>

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!