查找class =某个类并删除类的元素

时间:2014-01-05 12:00:32

标签: javascript jquery html css

我有一个没有类的div列表,当他们被点击时他们得到'active'类但是当我点击列表中的第二个div我希望任何其他div使用active类来放弃类活跃的。

HTML: -

    <div id="div1" onclick="classchanger(this); return false;"><p>first item</p></div>

    <div id="div2" onclick="classchanger(this); return false;"><p>second item</p></div>

    <div id="div3" onclick="classchanger(this); return false;"><p>third item</p></div>

单击div时添加类的Jquery: -

    function classchanger(e) {
    $(e).addClass( "active" );  

    };

但是如果点击不同的div,我需要删除这个类,例如: - (我试图实现的代码示例。)

    function classchanger(e) {
    if(any div == class of active){ 
    the divs with a class of active .removeClass( "active" )
    }
    $(e).addClass( "active" );  
    };

对这种或替代方法的任何想法我都会非常感激。

2 个答案:

答案 0 :(得分:3)

您应该将classchanger功能更改为

function classchanger(e) {
    $("#container").find(".active").removeClass("active"); 
    $(e).addClass( "active" );  
};

选择器选择“active”类的所有元素,并从中删除类。然后,您只需将该类添加到您单击的元素中。

答案 1 :(得分:-2)

HTML

   <div id="div1" class="item"><p>first item</p></div>
    <div id="div2" class="item"><p>second item</p></div>
    <div id="div3" class="item"><p>third item</p></div>

JS(jquery)

$(".item").on("click",function() {
  $(".item").each(function() { $(this).removeClass("active"); });
  $(this).addClass("active");
});