2012-02-22 26 views
1

我使用此代碼添加類列表項:禁用最後:兒童在只有一個項目

jQuery('#news ul > li:first-child').addClass('first'); 
jQuery('#news ul > li:last-child').addClass('last'); 

它的工作非常出色。問題是當我只有一個項目時...代碼是爲同一個li添加兩個類。

例子:

  1. 完美的作品,如果有兩個或兩個以上的項目:

    <div id="nav"> 
    <ul> 
    <li class="first">Item 1</li> 
    <li class="last">Item 2</li> 
    </ul> 
    </div> 
    
  2. 添加兩個類的唯一項目:

    <div id="nav"> 
    <ul> 
    <li class="first last">Item 1</li> 
    </ul> 
    </div> 
    

是有一種方法可以禁用.last class i f只有一個項目?

謝謝!

+1

'的jQuery( '#新聞ul>李:最後一個孩子:沒有(:第一胎)')。addClass( '最後' );' – 2012-02-22 14:32:17

+0

工作得很好!謝謝;) – Brightweb 2012-02-22 14:42:51

回答

3

看看在:only-child選擇:

$('#news ul > li:last').not(':only-child').addClass('last'); 
+0

我喜歡你的解決方案。它完美的作品。謝謝! – Brightweb 2012-02-22 14:45:52

4
$('#news ul > li:first').addClass('first'); 
$('#news ul > li:last').not('.first').addClass('last'); 
+0

工作得很好!謝謝! – Brightweb 2012-02-22 14:44:53

4

爲什麼不只是用CSS處理這個問題?

#news ul > li.last { } 

#news ul > li.first, 
#news ul > li.first.last { } 
+0

因爲我想要一個跨瀏覽器的解決方案。 – Brightweb 2012-02-22 14:43:40

+0

@ user1226062他說,一旦添加了類,就用css處理它們。這將是交叉瀏覽器。 – amosrivera 2012-02-22 15:03:34