¿Cómo agregar una clase usando jQuery?

Hice una pequeña función cuyo trabajo para agregar clase en <li> cuando hacemos clic enli>, pero quiero quitar eso si ya se tiene con <li>.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)">
    <meta name="created" content="Tue, 22 May 2012 12:39:23 GMT">
    <meta name="description" content="">
    <meta name="keywords" content="">
    <title></title>

    <style type="text/css">
    <!--
    body {
      color:#000000;
      background-color:#FFFFFF;
    }
    a  { color:#0000FF; }
    a:visited { color:#800080; }
    a:hover { color:#008000; }
    a:active { color:#FF0000; }
    -->
    </style>

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

    <script type="text/javascript">

    $(function(){

    $('.main').find('li').each(function(){

    $(this).live('click', function (){

    $(this).addClass('active')

    })

    })

    })

    </script>

  </head>
  <body>

  <ul class="main">
  <li>first</li>

  <li>second</li>
    <li>third</li>
      <li>fourth</li>  

  </ul>

  </body>
</html>

preguntado el 22 de mayo de 12 a las 13:05

3 Respuestas

Puedes usar toggleClass esto lo agregará o eliminará según sea necesario

$('.main li').live('click',function(){
  $(this).toggleClass('active');
});

si desea eliminar esta clase de otro lugar, puede agregar una línea adicional:

$('.main li').live('click',function(){
  $('.main li.active').removeClass('active')
  $(this).addClass('active');
});

Respondido el 30 de diciembre de 13 a las 19:12

Usa la función jquery .toggleClass.

$('.main li').click( function(){
  $(this).toggleClass('active');
}); 

Eso debería hacer el truco ;) http://api.jquery.com/toggleClass/

contestado el 22 de mayo de 12 a las 13:05

cuando hacemos clic en el primer li, está agregando la clase activa ahora quiero que si hacemos clic en el segundo li, entonces se debe eliminar la primera clase li - Jitender

Como sugirió Jamiec, puedes agregar $('.main li.active').removeClass('active') - TwisterStudios

Esto funcionará prueba...

$("#button").click(function(){

 $(".addclass").addClass("add");



})

$("#button2").click(function(){

 $(".addclass").removeClass("add");

})
.add{
color:red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p class="addclass">Sample text to add class on it</p>
<button id="button">Add Class</button>
<button id="button2">Remove Class</button>

respondido 03 mar '20, 10:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.