2014-10-08 100 views
0

好吧我有多個選擇框的類「active_category」 我想從最後一個輸入中刪除類exept。Jquery獲取多個元素的刪除類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++; 
    }); 

是否有短這樣做?

+0

的jQuery使用[未選擇(http://api.jquery.com/not-selector/)。 – albusshin 2014-10-08 14:22:42

回答

4

不需要each。只需使用:not:last選擇器:

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

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

+0

我會建議你把這個代碼封裝在這裏if if(count 2014-10-08 14:25:38

+0

這是工作,謝謝。 10分鐘過後,將接受維修人員。 – killstreet 2014-10-08 14:25:53

+0

@Rajaprabhu Aravindasamy:爲什麼這種單線解決方案需要一個'if'? :) – 2014-10-08 14:26:09

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/

向下選舉人的注意事項 - 讓我們在按下那個小按鈕之前想一想?

+0

如何將濾波器應用於單個元素? – 2014-10-08 14:22:51

+0

這不起作用。 – killstreet 2014-10-08 14:23:27

+0

@RajaprabhuAravindasamy他可能會考慮'.each()'中的這一行。 – 2014-10-08 14:23:32