【问题标题】:Remove a class from a div in jquery从jquery中的div中删除一个类
【发布时间】:2013-11-14 06:46:30
【问题描述】:

我在一个页面上有一组链接可以切换 div。单击链接时,它会将“活动”添加到所需的 div 并切换它 - 我还切换任何现有的活动 div - 但是我无法开始工作的是删除“活动”类,因此它不会再次切换.

<a href="valor" class="mas">link</a>
<a href="acaba" class="mas">link</a>
<a href="soluc" class="mas">link</a> 

<div id ="content">   
<div class="valor">TEXT</div>
<div class="acaba">TEXT</div>
<div class="soluc">TEXT</div> 
</div>

$(".mas").click(function () {
    var divToShow = "." + $(this).attr('href');
    $(".active").toggle("fast");
    $("#content div").removeClass(".active");
    $(divToShow).toggle("fast");
    $(divToShow).addClass("active");
    return false;
});

【问题讨论】:

  • 你能不能用 HTML 做个小技巧
  • 你的意思是在链接上添加活动类吗?
  • 这很奇怪 - 我一定是在某一时刻出现了其他问题,因为我将它作为简单的“活动”并且它不起作用 - 谢谢。

标签: javascript jquery html removeclass


【解决方案1】:

只需要从 removeClass 的值中删除.,因为 removeClass 采用类名,而.active 不是类名(我认为您的意思是提供一个选择器)。

$("#content div").removeClass(".active");

应该是

$("#content div").removeClass("active");

只是另一种方法:

HTML:- 添加一个 data-target 属性并在那里提供选择器。

 <a href="#" data-target=".valor" class="mas">link</a>  
 <a href="#" data-target=".acaba" class="mas">link</a>
 <a href="#" data-target=".soluc" class="mas">link</a> 
<div id="content">
    <div class="valor">TEXT1</div>
    <div class="acaba">TEXT2</div>
    <div class="soluc">TEXT3</div>
</div>

JS:

   $(".mas").click(function () {
       var divToShow = $(this).data('target');
       $('#content').children().not( //Hide all the children
              $(divToShow).toggle('fast').addClass('active') //But not the target which you do a toggle
       ).hide("fast").removeClass('active');
       return false;
   });

Demo

【讨论】:

    【解决方案2】:

    removeClass() 不需要选择器先决条件。

    .active 添加到您的选择中可能会更好地使用内存:

    $('#content div.active').removeClass('active');
    

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 2012-02-19
      • 2010-10-31
      相关资源
      最近更新 更多