2012-09-21 55 views
1

我有這樣的元素的列表:如何使用jQuery遍歷一組元素並設置奇數/偶數類?

<div class="odd">1</div> 
<div class="even">2</div> 
<div class="odd">3</div> 
<div class="even">4</div> 

現在,當用戶刪除元素3,結果是:

<div class="odd">1</div> 
<div class="even">2</div> 
<div class="even">4</div> 

現在我想的jQuery從第一到最後一個元素重新定義類:

<div class="odd">1</div> 
<div class="even">2</div> 
<div class="odd">4</div> 

我不知道如何解決這個問題。

回答

3

您可以使用:odd:even選擇:

var $divs = $('div'); 

$divs.filter(':odd').attr('class', 'odd'); 
$divs.filter(':even').attr('class', 'even'); 
+0

哇,這是很簡單的!謝謝! –

3

這應該這樣做

$("div").removeClass('odd even'); 
$("div:odd").addClass('odd'); 
$("div:even").addClass('even'); 

通過僅去除.odd或類。即使任何其他類添加(除了.odd即使)也會「生存」。

+0

+1更優雅的添加/刪除所需的類而無需重新設置元素的整個類屬性 – Pandaiolo

+0

@Pandaiolo創建3個用於選擇相同元素的jQuery對象並不那麼優雅。 – undefined

+0

已批准......對於一般情況(您不知道其他類是否存在),我會將您的元素緩存應用於c_kick代碼! :) – Pandaiolo

1

或者這樣:

$('div:odd').attr('class', 'odd'); 
$('div:even').attr('class', 'even'); 

的jsfiddle例如:

http://jsfiddle.net/2VpgV/