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

271
Views
jQuery: ¿cómo eliminar la clase de los elementos más cercanos en el div principal?

Tengo el siguiente HTML:

 <table> <tr> <td> <span class="btn active">One</span> <span class="btn">Two</span> <span class="btn">Three</span> </td> </tr> <tr> <td> <span class="btn">One</span> <span class="btn active">Two</span> <span class="btn">Three</span> </td> </tr> </table>

Intento agregar la clase active al elemento actual en el que se hizo clic:

 $(document).ready(function() { $(".btn").click(function() { $(".btn").removeClass("active"); $(this).addClass("active"); }); });

funciona, pero elimina la clase active de todos los demás tramos.

¿Cómo eliminar la clase active solo de los elementos más cercanos, por ejemplo, solo dentro del td principal?

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

0

Puede asegurarse de eliminar la clase solo de los elementos secundarios del elemento principal del intervalo en el que se hizo clic.

 $(document).ready(function() { $(".btn").click(function() { $(this.parentElement.childNodes).removeClass("active"); $(this).addClass("active"); }); });
about 4 years ago · Juan Pablo Isaza Report

0

Para hacer lo que necesita, puede usar this palabra clave en el controlador de eventos para hacer referencia al elemento que generó el evento. A partir de ahí, puede usar los métodos transversales del DOM de jQuery, en este caso siblings() , para encontrar los elementos relacionados y cambiar sus clases.

 jQuery($ => { $(".btn").click(function() { $(this).addClass('active').siblings('span').removeClass("active"); }); });
 .active { color: #C00; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <table> <tr> <td> <span class="btn active">One</span> <span class="btn">Two</span> <span class="btn">Three</span> </td> </tr> <tr> <td> <span class="btn">One</span> <span class="btn active">Two</span> <span class="btn">Three</span> </td> </tr> </table>

about 4 years ago · Juan Pablo Isaza Report

0

encuentro solución:

 $(document).ready(function() { $(".btn").click(function() { $(this).parent().find('.btn').removeClass("active"); $(this).addClass("active"); }); });
 .active { background: red; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table> <tr> <td> <span class="btn active">One</span> <span class="btn">Two</span> <span class="btn">Three</span> </td> </tr> <tr> <td> <span class="btn">One</span> <span class="btn active">Two</span> <span class="btn">Three</span> </td> </tr> </table>

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!