2012-06-08 57 views
3

我有下面的標記,添加類按李現在的位置

<ul> 
<li>1</li> //light BG 
<li>2</li> 
<li>3</li> 
<li>4</li> //light BG 
<li>5</li> 
<li>6</li> 
...... 
</ul> 

我想補充darklight,爲每li位置。

  • 首先li應該是light
  • 第二,第三應該是dark
  • 4日,5日應該是light
  • 相同的模式....
+0

是否有一個理由,爲什麼你不希望使用CSS3選擇器呢?只是好奇。 – Zeta

+0

http://api.jquery.com/nth-child-selector/ – Thomas

回答

3
$('ul li:nth-child(3n-2)').addClass('light'); 

$('ul li::not(:nth-child(3n-2))').addClass('dark'); 

DEMO

+0

我剛纔看了一下n-child文檔。使用eq()不是更好嗎? 「有了:第n個孩子(n),所有的孩子都會被計算,不管他們是什麼......通過:eq(n)只有連接到僞類的選擇器被計數爲」 – Thomas

+0

@Thomas我會去' :nth-​​child',更適合你的情況和最簡單 – thecodeparadox

0

這是模式你是後:

http://jsfiddle.net/rCkQV/

如果其他的人都黑了,他們可以繼承所有李時珍和光覆蓋此一類集。

$("ul li:nth-child(4n),ul li:nth-child(4n+1)").addClass("light"); 
1

玩模運營商,很有趣!

$('li').each(function() { 
    // Cache some variables 
    var el = $(this), 
     index = el.index(); 

    if (index % 3 === 0 || index % 3 === 1) { 
     el.addClass('light'); 
    } 
    else { 
     el.addClass('dark'); 
    } 
}); 

PS:對我的幫助與模運算感謝Zeta/O/