Jquery在除最后一个元素之外的多个元素上获取removeclass

时间:2014-10-08 14:20:24

标签: jquery

好吧我有多个选择框,其中包含" active_category" 我想删除上一次输入的类exept。

我明白了:

<input type="text" class="active_category"/>
<input type="text" class="active_category"/>
<input type="text" class="active_category"/>
<input type="text" class="active_category"/>

我想把它改成这个:

<input type="text" class=""/>
<input type="text" class=""/>
<input type="text" class=""/>
<input type="text" class="active_category"/>

我目前的Jquery代码是:

    var count = 1;
    var total = $(".active_category").length;
    $(".active_category").each(function () {
        if(count < total)
        {
            $(this).removeClass( "active_category" );
        }
        count++;
    });

是否有更短的方法?

2 个答案:

答案 0 :(得分:4)

无需each。只需使用:not:last选择器:

$(".active_category:not(:last)").removeClass( "active_category" )

http://jsfiddle.net/TrueBlueAussie/r52rwk77/1/

答案 1 :(得分:0)

只是为我的答案添加上下文:

var count = 1;
var total = $(".active_category").length;
$(".active_category").each(function () {
    if(count < total)
    {

然后我的回答:

        $(this).not(':last-child').removeClass( "active_category" );

然后你的if语句的其余部分:

    }
    count++;
});

证明它适用于独立版本 - http://jsfiddle.net/Lmt5ovd2/

注意选民 - 让我们在按下那个小按钮之前想一想吗?