如何使用 jQuery 添加类?

Posted

技术标签:

【中文标题】如何使用 jQuery 添加类?【英文标题】:How to add class using jQuery? 【发布时间】:2012-05-28 23:01:32 【问题描述】:

我创建了一个小函数,当我们点击 li> 时,它的工作是在 <li> 中添加类,但如果 <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>

【问题讨论】:

【参考方案1】:

您可以只使用toggleClass 这将根据需要添加或删除它

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

如果你想从其他地方移除这个类,你可以多加一行:

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

【讨论】:

【参考方案2】:

使用jquery函数.toggleClass

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

这应该可以解决问题;) http://api.jquery.com/toggleClass/

【讨论】:

当我们单击第一个 li 时,它正在添加活动的类现在我想要如果我们单击第二个 li 那么应该删除第一个 li 类 按照 Jamiec 的建议,您可以添加 $('.main li.active').removeClass('active')【参考方案3】:

我们可以更好地使用 .on().delgate() 方法:

不再推荐使用 .live() 方法,因为后来的jQuery 版本提供了没有缺点的更好的方法。特别是,使用 .live()会出现以下问题:

https://api.jquery.com/live/

$('#showDiv').on('click',function()
  $(this).toggleClass('active');
);

【讨论】:

【参考方案4】:

这将工作尝试...

$("#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>

【讨论】:

以上是关于如何使用 jQuery 添加类?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有循环或jquery的mvc中使用模型类添加动态控件

如何根据值将 css 类添加到选择列表选项中 - 使用 jQuery

如何在jquery中使用类追加和删除字段

如何使用jquery获取以值开头的类并将事件添加到每个类中的复选框[关闭]

如何将“奇数”和“偶数”类添加到 div(Jquery)?

如何将类添加到 jquery.datatables 列?